Foxtable(狐表)用户栏目专家坐堂 → [求助]ftp上传文件如何避免重名覆盖?


  共有12807人关注过本帖树形打印复制链接

主题:[求助]ftp上传文件如何避免重名覆盖?

帅哥哟,离线,有人找我吗?
kolen
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
[求助]ftp上传文件如何避免重名覆盖?  发帖心情 Post By:2013/12/23 8:56:00 [只看该作者]

架设了一个FTP服务器,将项目中添加的附件通过FTP传到服务器中,目前问题是:

不同的用户上传的文件,文件名称可能会重复,虽然在项目中是分开的,但是服务器上,我都是把文件放在一个文件夹下的,这样就会覆盖掉。

举例:FTP服务器上的"文件夹DATA", a用户传了文件“新建文件.txt”, b用户传了“新建文件.txt”, 虽然内容不同,但是到A用户去下载的时候,他下载到的也是B的那个文件了。因为A那个文件在服务器上,在B上传的时候覆盖了。

 

有什么好的办法呢?


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/23 8:57:00 [只看该作者]

FileExists

判断指定的文件是否存在,语法:

FileExists(FileName)

FileName:要判断的文件名,含路径。

示例

Dim ftp1 As New FtpClient
ftp1.Host=
"196.128.143.28"
ftp1.Account = 
"foxuser"
ftp1.Password = 
"138238110"
If 
ftp1.FileExists("\photo\jz.png") Then '如果存在则下载
    
If ftp1.Download("\photo\jz.png","c:\data\jz.png"Then
        messagebox.Show(
"下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    
Else
        messagebox.Show(
"下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    
End If
Else

    messagebox.Show(
"此文件不存在!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End
 If

http://www.foxtable.com/help/topics/1410.htm

以上是帮助的例子,可以判断文件是否存在.


类似你这种情况,建议重新命名文件名, 格式变动为   用户名_原本的文件名   这样就不会造成这个问题了.

[此贴子已经被作者于2013-12-23 8:58:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
kolen
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/12/23 9:06:00 [只看该作者]

BIN老师,你实在太迅速了。图片点击可在新窗口打开查看

1、就是用上面的代码,上传的时候提示用户重名存在,强迫用户修改文件名后,再上传;这样用户麻烦一点。

 

2、建上传文件列名的表,将上传的文件重命名后(重命名过程中增加不可能重复的字段,如主键等),再传文件上去。下载的时候,再通过列明表把文件名在“翻译”过来。(感觉很麻烦,不知道有没有人这么做过)。

 


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/23 9:08:00 [只看该作者]

要么麻烦一下用户,要么麻烦一下开发者.   你选呗.

 回到顶部
帅哥哟,离线,有人找我吗?
kolen
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/12/23 9:19:00 [只看该作者]

那不麻烦用户了,呵呵。

ftp1.Upload("c:\data\Desert.jpg","\update\Desert.jpg")

上传文件需要一样的文件名的,我怎么重命名呢?

再好是用户原来的那个文件名不要改掉它。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/23 9:20:00 [只看该作者]

采用   user.name & "_" &  文件名    这样的方式

 回到顶部
帅哥哟,离线,有人找我吗?
kolen
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/12/23 9:25:00 [只看该作者]

ftp1.Upload("c:\data\Desert.jpg","XXXXXX") 直接在这里改,还是要别的呢?


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/23 9:26:00 [只看该作者]

在这里直接改可以了

 回到顶部
帅哥哟,离线,有人找我吗?
kolen
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/12/23 9:29:00 [只看该作者]

谢谢BIN老师了。图片点击可在新窗口打开查看


 回到顶部