【发布时间】:2015-12-27 08:00:32
【问题描述】:
好的,所以我正在通过尝试上传包含“HELLO WORLD”内容的文本文件来测试将文件上传到 FTP 服务器。 我得到了“回报” “上传文件完成 System.Net.WebClient 错误 -> 取消 ->False”。 该文件似乎出现在服务器上,但是当我打开它时,内容如下:
--------------8d30e4d69803578
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: application/octet-stream
HELLO WORLD
--------------8d30e4d69803578
我使用的代码是:
string ftpUserName = "ftpUserName";
string ftpPassword = "ftpPassword";
string ftpURL = "ftp://ftpServer.com/text.txt";
string path = "pathToFile/test.txt"
public static void Test()
{
System.Uri uri = new System.Uri(ftpURL);
FileInfo file = new FileInfo(path);
if (!file.Exists)
{
return;
}
using(WebClient wc = new WebClient())
{
wc.Credentials = new NetworkCredential(ftpUserName,ftpPassword);
wc.UploadFileCompleted += UploadFileCompleted;
wc.UploadFileAsync(uri,"STOR",path);
}
}
任何帮助将不胜感激
编辑
我也刚刚尝试了一个 zip 文件,但它已损坏。 .txt 和 .zip 到达服务器后也会小得多,所以我假设上传失败是因为该错误
编辑 2
使用 .net2.0 的 FtpWebRequest 版本解决了这个问题
【问题讨论】:
-
所以该文件存在于服务器上,但你有它的内容错误,你得到一个错误?文件格式还是.txt吗?
-
是的,文件最终在服务器上,仍然是 .txt,但内容似乎被破坏了
-
可能不相关,但由于您调用
UploadFile的 Async 版本,您应该 await 该行,因为您可能会丢弃您的上传文件之前的网络客户端。 -
您是否尝试阅读电子邮件内容(获取 HELLO WORLD)?