2015-01-22 6 views
0

Я использую следующий код для загрузки CSV на свой сервер и его обработки. Иногда (и очень случайным образом) загружаемый файл содержит только половину количества строк, которые содержит исходный файл (исходный файл содержит 450 строк, но некоторые из моих загрузок содержат только 200 строк). move_file_upload() возвращает true, и это происходит до обработки CSV. Любые мысли или идеи почему? Да, все права правильны.PHP: move_uploaded_file частично загружается

// PHP: 
public function import() { 
    if ($this->request->is('post')) { 
     $destination = "./uploaded_csvs/reports/" . time() . "_" . $this->request->data['Reports']['file']['name']; 

     // Copy the report to the server 
     if(move_uploaded_file($this->request->data['Reports']['file']['tmp_name'], $destination)) { 
      // Success - Process CSV 
     } else { 
      // Error 
     } 
    } 
} 

// HTML: 
<form accept-charset="utf-8" method="post" enctype="multipart/form-data" id="ReportsForm" action="/Reports/import"> 
    <input type="file" id="ReportFile" size="7" value="" name="data[Report][file]"> 
    <input type="image" src="/img/buttons/save.png"> 
</form> 
+0

Проверьте, не возникли ли какие-либо ошибки. –

+0

Нет, ошибок не было. Кроме того, файл, который я загружаю, составляет 54kb (так что размер не является проблемой). – execv

+0

Если файл move_uploaded_file возвращает значение true, то при загрузке ничего плохого не было. Единственная возможность, о которой я могу думать, это то, что ваш локальный файл был на полпути через то, что был написан другим процессом, когда вы нажали кнопку сохранения. – Phil

ответ

0

move_upload_file НЕ Усекает файл. Он просто переместит все, что было загружено. Если файл выходит из строя, то это то, что получил сервер.

Самое первое, что вы должны всегда делать с загрузкой подтвердит, что actually succeeded:

if ($_FILES['file']['error'] !== UPLOAD_ERR_OK) { 
    die('Upload failed with error code #' . $_FILES['file']['error']); 
} 

Никогда не полагайтесь на успех. Всегда проверяйте неудачу и относитесь к успеху как к приятному удивлению.

Смежные вопросы