我正在尝试将文件从本地文件夹上传到ftp服务器文件夹,在使用filezilla时可以正常工作。 我一直收到这个错误:
引用: 远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限)。 代码:
'.... ftppath =“tp://192.xxx.xx.xx/%2f/feedb/gnip/
Public Sub uploadFTP(ByVal ftpPath As String, ByVal localPath As String,
ByVal username As String, ByVal psswd As String)
Dim item As String = String.Empty
item = "F20110210022920.xml"
Try
Dim fs As FileStream = File.OpenRead(localPath & item)
Dim buffer As Byte() = New Byte(fs.Length - 1) {}
fs.Read(buffer, 0, buffer.Length)
fs.Close()
Dim clsRequest As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create(ftpPath & item), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential(username, psswd)
clsRequest.KeepAlive = False
clsRequest.Proxy = Nothing
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
clsRequest.Timeout = 10000
Dim bFile() As Byte = File.ReadAllBytes(localPath & item)
Dim clsStream As Stream = clsRequest.GetRequestStream()
clsStream.Write(bFile, 0, bFile.Length)
clsStream.Close()
clsStream.Dispose()
Catch ex As Exception
End Try
答案 0 :(得分:1)
我没有答案,但我确实有一种方法可以用来找到答案...下载并安装数据包嗅探器并观察ftp流量。控制频道对话不应该难以理解。看看你的对话和filezilla的对话之间有什么区别,你应该能够弄明白。
答案 1 :(得分:1)
如果您还没有,请获取WireShark的副本并检查FileZilla和您的自定义客户端发送的数据包。从这里,您将能够检查工作请求和非工作请求。通过分析差异,您应该能够确定需要修复的内容以使其工作正常。
答案 2 :(得分:0)
已解决的问题......
clsrequest.usepassive = true
frequest.usebinary = false
并在ftp路径中包含子文件夹