Latest posts on Передача файла на сервер - выбор протокола topichttps://python.su/forum/topic/3622/2009-01-19T18:19:07+02:00Общий :: Network :: Передача файла на сервер - выбор протокола
2009-01-19T18:19:07+02:00Metheo23475<blockquote><em>bw</em><br/>Файл передавай с запросом POST, не известно как сервер отреагирует на GET, вроде, проигнорирует.<br/>Попробуй использовать атрибут <strong>rfile</strong> (файловый объект), я не проверял и вообще не работал с данной библиотекой (<strong>BaseHTTPServer</strong>), но, вроде, оно. Судя по коду, можно передовать файл с GET, хотя это не правильно, на сколько я знаю. И, скажем, Apache или какой прокси, запросто похерит этот файл или выдаст ошибку. Пусть меня поправят, если ошибаюсь.<br/><br/>..bw</blockquote>Как я понял не важно как будет называться запрос. Мне главное чтобы на сервере был метод обработчик запроса (это можно написать), а в клиентском модуле - соответствующие методы. Курю “cgihttpserver”…
Общий :: Network :: Передача файла на сервер - выбор протокола
2009-01-19T18:15:15+02:00Metheo23474igor.kaist спасибо!<br/>Я просто сначала понял так что вы имели ввиду модуль CGIHTTPServer. Там действительно есть метод, обрабатывающий запросы POST (запросы в которых клиент (как и в PUT) может цеплять в данные.) <br/> Мне функционал cgi не нужен. Только возможность передавать с клиента на сервер команды(+цеплять файлы) и получать ответы(статус обработки команд). <br/> bw правильно говорит начет файлового объекта rfile. <br/>Пытаюсь разобраться как с ним работать…
Общий :: Network :: Передача файла на сервер - выбор протокола
2009-01-19T18:00:02+02:00igor.kaist23473Если модуль cgi работает, тогда так:<br/><div class="code"><pre>import cgi<br/>d=cgi.FieldStorage()<br/># где 'file' это имя формы отправки файла<br/>filename=d['file'].filename<br/>file=d['file'].file.read()</pre></div>Проверить, работает ли модуль cgi, можно так:<br/><div class="code"><pre>import cgi<br/>cgi.test()</pre></div>
Общий :: Network :: Передача файла на сервер - выбор протокола
2009-01-19T16:56:07+02:00bw23472Файл передавай с запросом POST, не известно как сервер отреагирует на GET, вроде, проигнорирует.<br/>Попробуй использовать атрибут <strong>rfile</strong> (файловый объект), я не проверял и вообще не работал с данной библиотекой (<strong>BaseHTTPServer</strong>), но, вроде, оно. Судя по коду, можно передовать файл с GET, хотя это не правильно, на сколько я знаю. И, скажем, Apache или какой прокси, запросто похерит этот файл или выдаст ошибку. Пусть меня поправят, если ошибаюсь.<br/><br/>..bw
Общий :: Network :: Передача файла на сервер - выбор протокола
2009-01-19T15:36:02+02:00Metheo23467Да, точно. Пытаюсь понять. Пока туго ((
Общий :: Network :: Передача файла на сервер - выбор протокола
2009-01-19T15:27:49+02:00igor.kaist23465модуль cgi?
Общий :: Network :: Передача файла на сервер - выбор протокола
2009-01-19T14:54:06+02:00Metheo23464Добрый день!<br/>Уже задавал вопрос по написанию текстового протокола. Сейчас вопрос ближе к делу.<br/><br/>Задача: написать клиентскую и серверную части текстового протокола (клиент и сервер работают через сетевые сокеты). Клиент может посылать серверу команды и файлы. Сервер выполняет команды, обрабатывает принимаемые файлы и возвращает клиенту статусные сообщения. <br/><br/>Пробую ковырять httplib для клиента и соотв. BaseHTTPServer для серверной части. Все вроде понятно,<br/>в стартовой строке передаю команды, в заголовках - доп.инфу, в теле - если есть файл. Соотв. методы в httplib есть.<br/> Проблема - ни в BaseHTTPServer, ни в SimpleHTTPServer не разобрался как написать метод который бы выдирал из клиентского реквеста передаваемый файл. <br/>Как? =)