Здравствуйте, хочу реализовать альтернативный путь заливки файлов на сервер, а именно через метод put, говорят что можно его использовать в форме:
<form action='upload.php' id="forma" method='put'>
<input type=file value='' name=app_file>
<input type="submit" value="Отправить"/>
</form>
а в php скрипте пишу такое:
<?
/* Данные PUT находятся в потоке stdin */
$putdata = fopen("php://stdin", "r");
//if($putdata)
//{
/* Открываем файл для записи */
$fp = fopen("myputfile.ext", "w");
/* Читаем данные блоками размером в 1 KB и
записываем их в файл */
while ($data = fread($putdata, 1024))fwrite($fp, $data);
/* Закрываем потоки */
fclose($fp);
fclose($putdata);
?>
Данный пхп код придумал не я, а взял с сайта.
Проблема - виснет браузер песочными часами когда отправляю фому.
Нигде я в Интернете не увидел работающего примера с методом Put так чтобы для цельности приложили клиентскую сторону html+javascript и серверную php. Всюду пишется на пхп, и какой то поток ввода stdin, кстати как этот поток запустить тоже не могу найти. И нигде не нашел русско-язычного мануала по работе php с разными потоками, например долго искал и не нашел как определить есть ли вообще поток "php://stdin" на исполняемый php скрипт.
Спросите зачем я стал заморачиваться с put когда есть старый добрый post, отвечу так - мне надо обойти временные файлы в /tmp т.к. работа с этми файлами в процессе их заливки не представляется возможным - php их просто на просто не видит. Это я говорю об удаленном хосте, где я не могу ничего конфигурировать ни в php.ini ни в httpd.conf . А мне надо ежесекундно их опрашивать на увеличение их размера, чтобы выдавать пользователю процесс uploada. Флеш-аплоадер не предлагать - в курсе о его существовании. И вообще интересно попробывать другие методы отличные от банальных get и post, но всё никак не найду статью где я бы видел преимущества и примеры их использования.
Подскажите в чем ошибка по которой не работает у меня put ну и если можете ссылки на мануалы по данной теме.