Я использую следующий код для загрузки 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>
Проверьте, не возникли ли какие-либо ошибки. –
Нет, ошибок не было. Кроме того, файл, который я загружаю, составляет 54kb (так что размер не является проблемой). – execv
Если файл move_uploaded_file возвращает значение true, то при загрузке ничего плохого не было. Единственная возможность, о которой я могу думать, это то, что ваш локальный файл был на полпути через то, что был написан другим процессом, когда вы нажали кнопку сохранения. – Phil