以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:FTP代码上传文件失败,用管理器操作却正常,何故?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95381)

--  作者:bahamute
--  发布时间:2017/1/18 10:33:00
--  请教:FTP代码上传文件失败,用管理器操作却正常,何故?
以下为上传文件代码:每次都提示上传失败,但是用管理器却能上传成功,不知为何?
注:【使用server U】,该用户根目录从 FTP服务端设置为\\FTPData\\合同资料\\ 
是否upload语句不正确?

Dim ftp1 As New FtpClient
ftp1.Host="10.127.158.96"
ftp1.Account = "CommonUser01"
ftp1.Password = "423"
ftp1.UTF8 = True

Dim dlg As New OpenFileDialog
dlg.Filter= "影印文件|*.pdf;*.jpg"
dlg.MultiSelect = False
dlg.InitialDirectory = SpecialFolder.MyDocuments
Dim fileName As String = ""

If dlg.ShowDialog = DialogResult.OK Then
    fileName = dlg.FileName.SubString(dlg.FileName.LastIndexOf("\\")+1)
    If ftp1.Upload(dlg.FileName,"\\合同资料\\" & fileName) = True Then
        Messagebox.show(dlg.FileName)
        Messagebox.show("\\合同资料\\" & fileName) 
        Messagebox.show("上传完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        Messagebox.show(dlg.FileName)
        Messagebox.show("\\合同资料\\" & fileName)
        Messagebox.show("上传失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Return Nothing
    End If
End If
[此贴子已经被作者于2017/1/18 10:49:15编辑过]

--  作者:有点色
--  发布时间:2017/1/18 11:16:00
--  

1、ftp是否存在合同资料这个文件夹?必须存在

 

2、代码改一下,先测试效果

 

If ftp1.Upload("d:\\test.jpg", "/合同资料/test.jpg") = True Then


--  作者:bahamute
--  发布时间:2017/1/18 13:30:00
--  
经过反复测试,发现上传文件代码中,目标路径必须写上全路径才能成功,这是什么原因?

ftp1.Upload(dlg.FileName,"d:\\FTPdata\\合同资料\\" & fileName) 

明明已经从server u设置了登录用户的目录为 d:\\FTPdata\\合同资料\\
[此贴子已经被作者于2017/1/18 13:33:35编辑过]

--  作者:有点色
--  发布时间:2017/1/18 14:15:00
--  

 你的ftp搭建有问题吧?你的虚拟路径设置有问题

 

http://jingyan.baidu.com/article/e52e36159c1ba140c70c517b.html

 

 如果你是根据上面的帖子设置的,你要把虚拟路径设置成 / ,也就是你的虚拟路径是什么,你upload的路径就要写什么。


--  作者:bahamute
--  发布时间:2017/1/18 14:30:00
--  
因为初次使用ftp,所以并没有设置虚拟路径,都是物理路径。
--  作者:有点色
--  发布时间:2017/1/18 14:44:00
--  
根据4楼设置一下。