2014-01-09 2 views
0

Для службы Cron я регистрирую ошибку в файле .log на моей локальной машине, а затем загружаю ее на ftp. Поэтому моя проблема заключается в загрузке файла на ftp. Я получаю неполный и неправильный формат файла журнала, где, как и на локальной машине, все в порядке. может кто-нибудь помочь мне и сообщить мне, где я пропал без вести.Загрузка файла .log с локального компьютера на FTP

Пример входа на локальной машине:

Отметка: 1/8/2014 5:50:14 PM

кандидат Email: [email protected]

Статус: Успех: Created

лога на фтп:

тэ Email : [email protected]

Статус: Успех: Созданный

Я пытаюсь этот код:

using (FileStream fileStream = new FileInfo(Convert.ToString(ConfigurationManager.AppSettings["DestinationLocation"]) + @"\" + fileName).Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
      { 
       int bufferLength = 2048; 
       byte[] buffer = new byte[bufferLength]; 

       using (Stream uploadStream = request.GetRequestStream()) 
       { 
        int contentLength = fileStream.Read(buffer, 0, bufferLength); 

        while (contentLength != 0) 
        { 
         uploadStream.Write(buffer, 0, bufferLength); 
         contentLength = fileStream.Read(buffer, 0, bufferLength); 
        } 
        fileStream.Close(); 
        uploadStream.Close(); 
       } 
      } 
+1

следующие размеры файла: –

ответ

0

Пожалуйста, попробуйте это. Ваш код не учитывает размер прочитанной информации и выглядит так, как будто он сохраняет все, что не читалось.

using (FileStream fileStream = new FileInfo(Convert.ToString(ConfigurationManager.AppSettings["DestinationLocation"]) + @"\" + fileName).Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
    { 
     byte[] buffer = new byte[fileStream.Length]; 
     int numBytesToRead = (int)fileStream.Length; 
     int numBytesRead = 0; 

     if (numBytesToRead > 0) 
     {  
      // get all file information in to the buffer 
      while (numBytesToRead > 0) 
      { 
       int n = fileStream.Read(buffer, numBytesRead, numBytesToRead); 

       if (n == 0) 
        break; 

       numBytesRead += n; 
       numBytesToRead -= n; 
      } 

      // now write that data to the file  
      using (Stream uploadStream = request.GetRequestStream()) 
      { 
       uploadStream.Write(buffer, 0, buffer.Length); 
      } 
     } 
    } 
Смежные вопросы