以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]ftp上传文件如何避免重名覆盖?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44095)

--  作者:kolen
--  发布时间:2013/12/23 8:56:00
--  [求助]ftp上传文件如何避免重名覆盖?

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

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

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

 

有什么好的办法呢?


--  作者:Bin
--  发布时间: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
--  发布时间:2013/12/23 9:06:00
--  

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

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

 

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

 


--  作者:Bin
--  发布时间:2013/12/23 9:08:00
--  
要么麻烦一下用户,要么麻烦一下开发者.   你选呗.
--  作者:kolen
--  发布时间:2013/12/23 9:19:00
--  

那不麻烦用户了,呵呵。

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

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

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

--  作者:Bin
--  发布时间:2013/12/23 9:20:00
--  
采用   user.name & "_" &  文件名    这样的方式
--  作者:kolen
--  发布时间:2013/12/23 9:25:00
--  

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


--  作者:Bin
--  发布时间:2013/12/23 9:26:00
--  
在这里直接改可以了
--  作者:kolen
--  发布时间:2013/12/23 9:29:00
--  

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