Foxtable(狐表)用户栏目专家坐堂 → 关于FTP上传同名文件覆盖的问题


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

主题:关于FTP上传同名文件覆盖的问题

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


加好友 发短信
等级:幼狐 帖子:113 积分:860 威望:0 精华:0 注册:2020/2/13 22:59:00
关于FTP上传同名文件覆盖的问题  发帖心情 Post By:2022/8/29 17:15:00 [只看该作者]

老师您好,

遇到一个问题,利用ftp服务器管理远程文件,当上传一个同名文件的时候,提示可以覆盖前面的文件,导致原来上传的文件内容丢失;不利于管理。有什么办法解决这个问题么?谢谢!

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/29 17:19:00 [只看该作者]

上传前,先判断同目录下有没有同名文件,如果有就提示改名,否则再上传

Dim ftp1 As New FtpClient
ftp1.Host=
"196.128.143.28"
ftp1.Account = 
"foxuser"
ftp1.Password = 
"138238110"
If 
ftp1.FileExists("\photo\jz.png") Then '如果存在则下载
   
messagebox.Show("此文件已存在,请改名后重新上传!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else

  
ftp1.Upload("c:\data\jz.jpg","\photo\jz.png")
End
 If

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


加好友 发短信
等级:幼狐 帖子:113 积分:860 威望:0 精华:0 注册:2020/2/13 22:59:00
  发帖心情 Post By:2022/8/29 17:40:00 [只看该作者]

谢谢老师,

用的是自带的ftp客户端,点“增加”按钮,然后点击“上传文件”,平时是这样上传的。

是要在网络监视器里面写这段代码么?怎么判断用户选择了什么文件名呢?刚刚开始学习,不太懂

谢谢哦。

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/29 20:44:00 [只看该作者]

如果是高级开发版,可以到网络监视器这个事件写代码判断:http://www.foxtable.com/webhelp/topics/3258.htm,使用ftp1.FileExists判断文件是否存在

如果不是高级开发版,只能设计窗口,添加按钮自己写上传文件,不能使用自带的ftp客户端的增加按钮上传了

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


加好友 发短信
等级:幼狐 帖子:113 积分:860 威望:0 精华:0 注册:2020/2/13 22:59:00
  发帖心情 Post By:2022/8/29 23:03:00 [只看该作者]

谢谢老师,是高级开发版;
有个疑问:
FileExists()语法是判断固定的文件名是否在同目录下存在。可是每次上传的文件名都不同,该如何写这个代码呢?

谢谢哦;

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/30 8:27:00 [只看该作者]

BeforeUpload

在上传文件之前执行,通过此事件可以完全禁止用户上传文件,或允许用户只能上传特定类型的文件,或只能将文件上传到指定的目录。

e属性属性:

LocalFile字符型,要上传的本地文件,含路径。
CurFolder字符型,FTP的当前目录,文件将被上传到此目录。
Cancel逻辑型,设置为True将取消本次上传操作。
CancelAll逻辑型,设置为True取消本次及后续上传操作。
FTPName字符型,返回FTP的FTPName属性

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


加好友 发短信
等级:幼狐 帖子:113 积分:860 威望:0 精华:0 注册:2020/2/13 22:59:00
  发帖心情 Post By:2022/8/30 9:11:00 [只看该作者]

是类似这样写么老师:
Dim ftp1 As New FtpClient
ftp1.Host=
""196.128.143.28""
ftp1.Account = 
"foxuser"
ftp1.Password = 
"138238110"
If ftp1.FileExists(e.localfile) Then '如果存在同名文件
   messagebox.Show("此文件已存在,请改名后重新上传!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Cancelall= True

End If

测试了,这样也不行,还是提示是否覆盖原文件;因为localfile是带路径的,所以不懂如何去写;麻烦老师帮忙写一下哦。谢谢哈!

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/30 9:30:00 [只看该作者]

If ftp1.FileExists(e.CurFolder & "/" & filesys.getname(e.localfile)) Then

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


加好友 发短信
等级:幼狐 帖子:113 积分:860 威望:0 精华:0 注册:2020/2/13 22:59:00
  发帖心情 Post By:2022/8/30 9:44:00 [只看该作者]

可以了,谢谢蓝老师^_^

 回到顶部