0

使用下面的代码,我正在尝试将加密文件上传到 FTP 服务器。从 ftp 服务器下载文件时,它们都已损坏。

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(
    user, 
    pass);

StreamReader sourceStream = new StreamReader(tempfilepath);
byte[] fileContents = ASCIIEncoding.ASCII.GetBytes(sourceStream.ReadToEnd()); // uploads corrupted files
//byte[] fileContents = File.ReadAllBytes(tempfilepath);
sourceStream.Close();
request.ContentLength = fileContents.Length;

Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();

// Shows confirm message
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();

任何线索可能是什么问题?

4

2 回答 2

2

看起来您正在将任意二进制数据读入StreamReader.
不要那样做。

StreamReader阅读文本;将原始二进制数据传递到 StreamReader 将删除所有无效的代码点。

相反,您应该纯粹使用Streamor byte[]

于 2012-10-28T21:32:06.387 回答
0

问题解决了......不幸的是,这是一个非常愚蠢的问题,所以它不会真正帮助任何人。我实际上是在上传未加密的文件,所以当我解密它时,显然它是行不通的。

于 2012-10-29T17:52:18.827 回答