以文本方式查看主题 - 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 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老师了。 |