ftp-файл загрузки поврежден в c# [дубликат]
На этот вопрос уже есть ответ здесь:
- архив или изображение повреждены после загрузки на FTP и загрузки обратно с помощью FtpWebRequest 1 ответ
 
Здравствуйте у меня есть этот код для загрузки изображения или файла word через c# с помощью ftp.
Код работает нормально он загружает файл на ftp но файл портится после загрузки пожалуйста посоветуйте что ошибается в этом спасибо
    //FTP Server URL.
    string ftp = "ftp://ftpip/";
    //FTP Folder name. Leave blank if you want to upload to root folder.
    string ftpFolder = "folder path to upload";
    byte[] fileBytes = null;
    //Read the FileName and convert it to Byte array.
    string fileName = Path.GetFileName(FileUpload1.FileName);
    using (StreamReader fileStream = new StreamReader(FileUpload1.PostedFile.InputStream))
    {
        fileBytes = Encoding.UTF8.GetBytes(fileStream.ReadToEnd());
        fileStream.Close();
    }
    try
    {
        //Create FTP Request.
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftp + ftpFolder + fileName);
        request.Method = WebRequestMethods.Ftp.UploadFile;
        //Enter FTP Server credentials.
        request.Credentials = new NetworkCredential("ftpuser", "ftppassowrd");
        request.ContentLength = fileBytes.Length;
        request.UsePassive = true;
        request.UseBinary = true;
        request.ServicePoint.ConnectionLimit = fileBytes.Length;
        request.EnableSsl = false;
        using (Stream requestStream = request.GetRequestStream())
        {
            requestStream.Write(fileBytes, 0, fileBytes.Length);
            requestStream.Close();
        }
        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
        lblMessage.Text += fileName + " uploaded.<br />";
        response.Close();
    }
    catch (WebException ex)
    {
        throw new Exception((ex.Response as FtpWebResponse).StatusDescription);
    }
1 ответ:
Можно использовать
BinaryReaderвместо получения байтов в кодировке UTF8. Вы должны изменить его;using (StreamReader fileStream = new StreamReader(FileUpload1.PostedFile.InputStream)) { fileBytes = Encoding.UTF8.GetBytes(fileStream.ReadToEnd()); fileStream.Close(); }К
FileUpload1.PostedFile.InputStream.Seek(0, SeekOrigin.Begin); using (var binaryReader = new BinaryReader(FileUpload1.PostedFile.InputStream)) { fileBytes = binaryReader.ReadBytes(FileUpload1.PostedFile.ContentLength); }