繁体   English   中英

除非“ txt”文件c#,否则ftp上传的文件已损坏

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM