不使用MultipartPostHandler(Python)发送文件

时间:2012-04-02 08:22:33

标签: python upload urllib2

我在文件发送中使用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的情况下执行相同操作(将文件发送到服务器)?最好只使用buid-in python模块和urllib2。是否可能。

2 个答案:

答案 0 :(得分:1)

  

MultipartPostHandler需要使用easy_install,pip或者安装它   来源。我想写一些不会的python脚本   需要新的安装。

只需将其添加到原始脚本中 - 它只是一个文件。复制粘贴code for the module

答案 1 :(得分:0)

不幸的是,没有直接的方法可以使用urllib2发布多部分文件。但是有一些方法可以通过使用mimetype和mimetools模块编写自定义表单对象来实现这一点。您可以follow this recipe并使用您的表单使用urllib2进行多部分上传。

(在Python3中,urllib.request数据可以获取指向文件对象的指针,并将整个文件读入内存)