Отправить файл без MultipartPostHandler (Python) - PullRequest
0 голосов
/ 02 апреля 2012

Я использую MultipartPostHandler при отправке файлов.Мой код следующий:

params = {'file':open(file_name, 'rb')} 
headers = {'cookie':session_id}
urllib2.install_opener(urllib2.build_opener(MultipartPostHandler.MultipartPostHandler))
response = urllib2.urlopen(urllib2.Request("www.example.com/upload", params, headers))

Как я могу сделать то же самое (отправить файл на сервер) без использования MultipartPostHandler?Было бы хорошо использовать только встроенные модули Python и urllib2.Возможно ли это.

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

MultipartPostHandler должен установить его с помощью easy_install, pip или из источника. Я хочу написать скрипт на Python, который не Требуются новые установки.

Просто добавьте его в свой оригинальный скрипт - это всего лишь один файл. Скопируйте и вставьте код для модуля .

0 голосов
/ 02 апреля 2012

К сожалению, прямого метода для публикации файла из нескольких деталей с помощью urllib2 не существует. Но есть способы сделать это, написав пользовательский объект формы с помощью модуля mimetype и mimetools. Вы можете следовать этому рецепту и принять свою форму для выполнения многоадресной загрузки с использованием urllib2.

(В Python3 данные urllib.request могут принимать указатель на объект файла, который считывает весь файл в память)

...