put — Невозможно прочитать менее 1024 байтов (1 КБ) с хищением в переполнении стека

Я хочу прочитать файл в запрос PUT. Как предлагается в документации PHP:

<?php
/* PUT data comes in on the stdin stream */
$putdata = fopen("php://input", "r");

/* Open a file for writing */
$fp = fopen("myputfile.ext", "w");

/* Read the data 1 KB at a time
and write to the file */
while ($data = fread($putdata, 1024))
fwrite($fp, $data);

/* Close the streams */
fclose($fp);
fclose($putdata);
?>

Но когда отправленный файл меньше 1 КБ, он не читается. Кто-нибудь знает об этом специфическом поведении фреда в PHP?
Спасибо!

Даже когда условие while изменяется на
while($data=fread($putdata, 512))это не идет внутри петли. Я не знаю его специфического поведения, но разве этот хэш не поддерживает чанк меньше 1024? Просто любопытно!

0

Решение

stream_get_contents ($ fp) сработало! Он вернул содержимое уже открытого потока (в данном случае $ fp) в виде строки в одном кадре.
Спасибо всем за ваши предложения 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]