Загрузка больших файлов с помощью метода PUT

#php #html #file-upload

#php #HTML #загрузка файла

Вопрос:

У меня есть страница с функцией перетаскивания html5, и файл загружается с помощью метода PUT. Если я загружаю большие файлы изображений, на сервере сохраняется только часть изображения. Я использую следующий PHP-код для сохранения файла

     $putdata = fopen("php://input", "r");
    $fp = fopen("/tmp/myputfile" . microtime() . ".jpg", "w");

    while ($data = fread($putdata, 1024))
      fwrite($fp, $data);

    fclose($fp);
    fclose($putdata);
 

Что-нибудь не так с этим? пожалуйста, помогите

Ответ №1:

Я думаю, потому что весь файл еще не полностью загружен, когда вы пытаетесь прочитать, поэтому иногда он возвращает вам нулевые прочитанные байты. Но все еще могут быть загружаемые данные.

Может быть, вы можете попробовать использовать функцию feof, чтобы проверить, есть ли еще какие-либо данные для чтения?

см. «http://www.php.net/manual/en/function.feof.php »

Ответ №2:

Если вы используете Windows, вам следует добавить «b» в параметр mode в fopen(). смотрите руководство, кстати. это всего лишь хорошая идея добавить параметр для переносимости кода…