[英]Ftp uploaded files are corrupted unless “txt” files c#
我在c#中使用FTP服务器,并且必须上传不同类型的文件(.png,.xlsx,docx ....),目前每种文件类型的上传均已完成,但是如果我尝试打开文件(.txt除外)表示文件已损坏。 我究竟做错了什么?
谢谢
FtpWebResponse response = null;
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
if (request == null)
{
result.SetError(Translate.InvalidUrl, url);
return false;
}
request.Method = WebRequestMethods.Ftp.UploadFile;
request.UseBinary = true;
request.Credentials = new NetworkCredential(username, password);
if (sourceStream == null)
{
result.SetError(Translate.FileErrorReading);
return false;
}
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
response = (FtpWebResponse)request.GetResponse();
result.SetInformation(Translate.FileSuccefullUpload, filename);
}
catch (Exception e)
{
result.SetError(e.Message);
return false;
}
finally
{
if (response != null)
response.Close();
}
return result.Successful;
}
为什么使用Encoding.UTF8.GetBytes
?
此修剪字节。
您应该以二进制模式(即File.ReadAllBytes
)读取数据。
检查您使用的是ASCII还是BINARY传输模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.