В php-файле я читаю поток ввода, который содержит изображение.
$incomingData = file_get_contents('php://input');
$fh = fopen($uploadPath, 'w');
fwrite($fh, $incomingData);
fclose($fh);
Для небольших изображений это работает просто отлично, для больших изображений, которые занимают более 15 секунд или около того, я получаю неверный ответ шлюза 502.
Журнал ошибок apache говорит:
child pid 1492 Выходной сигнал Ошибка сегментации (11)
Я пробовал это, но это не сработало.
ini_set('default_socket_timeout', 120);
Но я не уверен, что время истекло.
edit // КОД:
$uploadFilename = time();
$uploadPath = '/path/melvin.jpg';
$fhSrc = fopen('php://input', 'r');
// Valid data?
if($fhSrc) {
$fhDst = fopen($uploadPath, 'w');
while (($data = fread($fhSrc, 1024)) !== FALSE) {
fwrite($fhDst, $data);
}
fclose($fhSrc);
fclose($fhDst);
}
echo 'ok';
RAW HEADERS:
POST /test.php HTTP/1.1
Host: hi.com
User-Agent: secret/1.0 (unknown, iPhone OS 5.0.1, iPhone, Scale/2.000000)
Accept: */*
Accept-Language: nl, en, fr, de, ja, it, es, pt, pt-PT, da, fi, nb, sv, ko, zh-Hans, zh-Hant, ru, pl, tr, uk, ar, hr, cs, el, he, ro, sk, th, id, ms, en-GB, ca, hu, vi, en-us;q=0.8
Accept-Encoding: gzip
Settings: {SOMEJSON}
Content-Type: application/x-www-form-urlencoded
Cookie: CAKEPHP=2b82f748fb3a64063b2e3be9bdec5c11
Connection: keep-alive
Transfer-Encoding: Chunked
Pragma: no-cache
Cache-Control: no-cache
and here in the boy the Big image