file_get_contents
не принимает параметр "r" - см. справочную страницу PHP :
string file_get_contents ( string $filename [, int $flags...)
Допустимые значения $flag
: FILE_USE_INCLUDE_PATH, FILE_TEXT, FILE_BINARY
.
Попробуйте убрать флаг "r" и повторите попытку
Редактировать - вопрос обновлен, флаг "r" игнорировался, так что, очевидно, не является причиной проблемы.
Похоже, что в PHP сообщается об ошибке , касающейся file_get_contents
возврата пустой строки для HTTP POST. Из описания ошибки:
file_get_contents('php://input')
(а также file, fopen+fread
) не
возвращать данные POST, когда отправленная форма с
ENCTYPE = "многочастному / форм-данных". * * +1025
При отправке той же формы без указания энктипа (по умолчанию
"application / x-www-form-urlencoded" используется) все работает хорошо.
Похоже, что обходной путь - это изменить указанный тип формы с multipart/form-data
, что явно не идеально для загрузки изображения - из спецификации W3 FORM :
Тип содержимого «application / x-www-form-urlencoded» неэффективен для отправки больших объемов двоичных данных или текста, содержащего символы не ASCII. Тип контента "multipart / form-data" должен использоваться для отправки форм, содержащих файлы, данные не ASCII и двоичные данные.
Дальнейшее редактирование
Эта ошибка, похоже, была исправлена в вашей версии PHP. Вы проверили, чтобы убедиться, что считываемый буфер не начинается с символа возврата каретки / перевода строки? Есть проблема, несколько похожая на вашу, которая обсуждалась на Sitepoint .
Попробуйте запустить strlen
на входе и посмотрите, какова длина.