C# 使用C将txt文件上载到FTP服务器时的额外数据#

C# 使用C将txt文件上载到FTP服务器时的额外数据#,c#,ftp,C#,Ftp,好的,我正在尝试上传一个包含“HELLO WORLD”内容的文本文件,以此来测试将文件上传到FTP服务器。 我得到的回报是“ “上载文件已完成System.Net.WebClient错误->取消->错误”。 该文件似乎出现在服务器上,但当我打开它时,内容为: --------------8d30e4d69803578 Content-Disposition: form-data; name="file"; filename="test.txt" Content-Type: application

好的,我正在尝试上传一个包含“HELLO WORLD”内容的文本文件,以此来测试将文件上传到FTP服务器。 我得到的回报是“ “上载文件已完成System.Net.WebClient错误->取消->错误”。 该文件似乎出现在服务器上,但当我打开它时,内容为:

--------------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
,因此您应该等待该行,因为您可能会在上载文件之前处理您的web客户端。您是否尝试阅读电子邮件内容(用于get HELLO WORLD)?对不起,我的错,没有意识到
WebClient
有两个版本的异步方法。要使用我所说的版本,您可以调用
UploadFileTaskAsync
。但是这是一个很大的主题,您应该在进入之前阅读它。因此,您的代码看起来很好。您确定粘贴了与之相同的代码吗t给出了这种行为?这就是我调用上载的函数,但我想我发现了问题,我没有两个版本的异步方法。我在unity3D中编写这篇文章,它迫使你使用.net 2,这让我怀疑我是否遗漏了一些关键的东西,并且正在阅读一种更新的方法。你的代码应该可以吗无极。您也可以直接尝试使用
FtpWebRequest
。它将使您对请求有更多的控制。啊哈!使用2.0版本的FptWebRequest非常有效,谢谢!