使用下面的代码我正在尝试将加密文件上传到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();
有任何疑问可能是什么问题?
答案 0 :(得分:2)
看起来你正在将任意二进制数据读入StreamReader
不要那样做。
StreamReader
阅读文字;将原始二进制数据传递到StreamReader将丢弃所有无效的代码点。
相反,您应该完全使用Stream
或byte[]
。
答案 1 :(得分:0)
问题解决了......不幸的是,这是一个非常愚蠢的问题,所以它不会真正帮助任何人。 我实际上是在上传未加密的文件,所以当我解密它时,显然它不会起作用。