Чтение данных POST при загрузке - PullRequest
1 голос
/ 01 февраля 2011

Я собираюсь закончить плагин jquery, который должен предоставить индикатор выполнения для загрузки файла с использованием ajax и скрипта Python CGI.

Мой плагин вдохновлен после этой программы .

Идея состоит в том, чтобы читать (с помощью сценария Python CGI) необработанные данные на сервере, пока браузер загружает, анализирует их, записывать файл (в виде кусков) на диск и в то же время использовать ajax, чтобы спросить сервер о текущем размере записанного файла. .

Плагин работает на моем сервере и на некоторых других серверах веб-хостинга. Но на Mochahost (используя apache) он не работает должным образом. Что этот сервер делает, так это то, что он вызывает мой скрипт Python CGI после того, как вся загрузка полностью завершена, а не во время загрузки файла (как ожидалось). Я проверил момент вызова, добавив в самом начале сценария python команду для написания тестового файла. Эта команда должна запускаться при вызове python и не требует чтения sys.stdin.

Даже на этом сервере скрипт Python CGI работает (почти) так, как задумано. Он читает sys.stdin кусками, анализирует его и записывает файл на диск. Проблема в сроках. Сервер не обеспечивает Python потоком ввода в реальном времени, но после получения всех сообщений из браузера он вызывает Python и заполняет sys.stdin необработанными опубликованными данными, которые уже где-то сохранены.

Я не знаю, имеет ли это отношение, но я заметил, что их версия apache - 2.0.x, а SERVER_PROTOCOL - HTTP / 1.0. На других серверах веб-хостинга SERVER_PROTOCOL - HTTP / 1.1.

Кто-нибудь может сказать, что может заставить сервер или, в частности, сервер apache, вызывать сценарий cgi после завершения загрузки, а не когда браузер запрашивает это?

...