Latest posts on Отправка файла по HTTP topichttps://python.su/forum/topic/1683/2008-08-21T20:14:53+03:00Общий :: Network :: Отправка файла по HTTP
2008-08-21T20:14:53+03:00shiza16064там куки наверняка.
Общий :: Network :: Отправка файла по HTTP
2008-08-21T13:16:59+03:00rootkithunter16053Пытался сделать подобное для рапидшары.ком, не получилось :(
Общий :: Network :: Отправка файла по HTTP
2008-01-22T11:11:08+02:00The gray Cardinal10639Вопрос решён. Результат <a href="http://forum.script-coding.info/viewtopic.php?id=1066">здесь</a>.
Общий :: Network :: Отправка файла по HTTP
2008-01-20T22:45:54+02:00The gray Cardinal10622Пытаюсь отправить файл на <a href="http://www.zalil.ru/upload/">http://www.zalil.ru/upload/</a> :<br/><div class="code"><pre><span class="c"># -*- coding: utf-8 -*-</span>
<span class="kn">import</span> <span class="nn">codecs</span><span class="o">,</span> <span class="nn">sys</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">codecs</span><span class="o">.</span><span class="n">getwriter</span><span class="p">(</span><span class="s">'cp866'</span><span class="p">)(</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span> <span class="n">errors</span><span class="o">=</span><span class="s">'replace'</span><span class="p">)</span>
<span class="kn">import</span> <span class="nn">httplib</span>
<span class="n">f</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">'C:</span><span class="se">\\</span><span class="s">Temp</span><span class="se">\\</span><span class="s">test.zip'</span><span class="p">,</span> <span class="s">'rb'</span><span class="p">)</span>
<span class="n">DATA</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span> <span class="c"># данные файла</span>
<span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="c"># разделитель для данных</span>
<span class="n">BOUNDARY</span> <span class="o">=</span> <span class="s">'----------ThIs_Is_tHe_bouNdaRY_$'</span>
<span class="c"># тело HTTP-запроса</span>
<span class="n">body</span> <span class="o">=</span> <span class="s">'''</span>
<span class="si">%s</span><span class="s"></span>
<span class="s">Content-Disposition: form-data; name="file"; filename="test.zip"</span>
<span class="s">Content-Type: application/octet-stream</span>
<span class="s">Content-Transfer-Encoding: binary</span>
<span class="si">%s</span><span class="s"></span>
<span class="si">%s</span><span class="s">--</span>
<span class="s">'''</span> <span class="o">%</span> <span class="p">(</span><span class="n">BOUNDARY</span><span class="p">,</span> <span class="n">DATA</span><span class="p">,</span> <span class="n">BOUNDARY</span><span class="p">)</span>
<span class="c"># заголовки HTTP-запроса</span>
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s">'Content-type'</span> <span class="p">:</span> <span class="s">'multipart/form-data; boundary=</span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="n">BOUNDARY</span><span class="p">,</span>
<span class="s">'Content-Length'</span> <span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">body</span><span class="p">)}</span>
<span class="c"># подключение к HTTP-серверу</span>
<span class="n">h</span> <span class="o">=</span> <span class="n">httplib</span><span class="o">.</span><span class="n">HTTPConnection</span><span class="p">(</span><span class="s">'www.zalil.ru'</span><span class="p">)</span>
<span class="c"># посылка запроса</span>
<span class="n">h</span><span class="o">.</span><span class="n">request</span><span class="p">(</span><span class="s">"POST"</span><span class="p">,</span> <span class="s">"/upload/"</span><span class="p">,</span> <span class="n">body</span><span class="p">,</span> <span class="n">headers</span><span class="p">)</span>
<span class="c"># получение и анализ ответа HTTP-сервера</span>
<span class="n">resp</span> <span class="o">=</span> <span class="n">h</span><span class="o">.</span><span class="n">getresponse</span><span class="p">()</span>
<span class="k">print</span> <span class="n">resp</span><span class="o">.</span><span class="n">status</span><span class="p">,</span> <span class="n">resp</span><span class="o">.</span><span class="n">reason</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">resp</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="n">h</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">print</span> <span class="nb">unicode</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="s">'cp1251'</span><span class="p">)</span>
</pre></div>Получаю страничку с надписью “Файл не закачался, попробуйте еще раз”. Что-то я делаю неправильно, а что - не пойму.