以文本方式查看主题

-  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=179552)

--  作者:syst
--  发布时间:2022/8/29 17:15:00
--  关于FTP上传同名文件覆盖的问题
老师您好,

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

--  作者:有点蓝
--  发布时间: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
--  发布时间:2022/8/29 17:40:00
--  
谢谢老师,

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

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

谢谢哦。

--  作者:有点蓝
--  发布时间:2022/8/29 20:44:00
--  
如果是高级开发版,可以到网络监视器这个事件写代码判断:http://www.foxtable.com/webhelp/topics/3258.htm,使用ftp1.FileExists判断文件是否存在

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

--  作者:syst
--  发布时间:2022/8/29 23:03:00
--  
谢谢老师,是高级开发版;
有个疑问:
FileExists()语法是判断固定的文件名是否在同目录下存在。可是每次上传的文件名都不同,该如何写这个代码呢?

谢谢哦;

--  作者:有点蓝
--  发布时间:2022/8/30 8:27:00
--  

BeforeUpload

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

e属性属性:

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

--  作者:syst
--  发布时间: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是带路径的,所以不懂如何去写;麻烦老师帮忙写一下哦。谢谢哈!

--  作者:有点蓝
--  发布时间:2022/8/30 9:30:00
--  
If ftp1.FileExists(e.CurFolder & "/" & filesys.getname(e.localfile)) Then

--  作者:syst
--  发布时间:2022/8/30 9:44:00
--  
可以了,谢谢蓝老师^_^