【问题标题】:Ftp uploaded files are corrupted unless "txt" files c#Ftp 上传的文件已损坏,除非“txt”文件 c#
【发布时间】:2013-01-04 14:27:32
【问题描述】:

我在 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;
    }

【问题讨论】:

    标签: c# upload ftpwebrequest


    【解决方案1】:

    你为什么使用Encoding.UTF8.GetBytes

    这个修剪字节。

    您应该以二进制模式读取数据(即File.ReadAllBytes)。

    【讨论】:

      【解决方案2】:

      检查您使用的是 ASCII 还是 BINARY 传输模式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        • 2023-03-20
        • 1970-01-01
        • 2018-06-21
        • 1970-01-01
        • 2010-12-26
        相关资源
        最近更新 更多