Ftp上载的文件已损坏,除非;txt";文件c#
我使用的是c#中的FTP服务器,我必须上传不同类型的文件(.png、.xlsx、docx…),目前每个文件类型的上传都已完成,但如果我试图打开一个文件(除了.txt),它会说该文件已损坏。 我做错了什么 多谢各位Ftp上载的文件已损坏,除非;txt";文件c#,c#,upload,ftpwebrequest,C#,Upload,Ftpwebrequest,我使用的是c#中的FTP服务器,我必须上传不同类型的文件(.png、.xlsx、docx…),目前每个文件类型的上传都已完成,但如果我试图打开一个文件(除了.txt),它会说该文件已损坏。 我做错了什么 多谢各位 FtpWebResponse response = null; try { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url); if (request ==
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;
}
检查是否使用ASCII或二进制传输模式。为什么使用
编码.UTF8.GetBytes
这是一个字节
您应该以二进制模式读取数据(即文件.ReadAllBytes
)