【发布时间】:2010-09-29 06:41:35
【问题描述】:
我目前正在尝试使用 urllib2 和 urllib2_file 库启动文件上传。这是我的代码:
import sys
import urllib2_file
import urllib2
URL='http://aquate.us/upload.php'
d = [('uploaded', open(sys.argv[1:]))]
req = urllib2.Request(URL, d)
u = urllib2.urlopen(req)
print u.read()
我已将此 .py 文件放在我的“我的文档”目录中,并在我的“发送到”文件夹中放置了指向它的快捷方式(快捷方式 URL 为 )。
当我右键单击一个文件,选择“发送到”,然后选择“Aquate”(我的 Python)时,它会在瞬间打开一个命令提示符,然后将其关闭。什么都没有上传。
我知道可能发生了错误,所以我将代码逐行输入到 CL python 中。
当我运行u=urllib2.urlopen(req) 行时,我没有收到错误;
alt text http://www.aquate.us/u/55245858877937182052.jpg
相反,光标只是在该行下方的新行上开始闪烁。我等了几分钟,看看是否会发生什么事情,但它就是这样。为了让它停止,我必须按 ctrl+break。
这个脚本是怎么回事?
提前致谢!
[编辑] 忘了提——当我在没有请求数据(文件)的情况下运行脚本时,它运行起来就像一个魅力。是 urllib2_file 的问题吗?
[编辑 2]:
import MultipartPostHandler, urllib2, cookielib,sys
import win32clipboard as w
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),MultipartPostHandler.MultipartPostHandler)
params = {"uploaded" : open("c:/cfoot.js") }
a=opener.open("http://www.aquate.us/upload.php", params)
text = a.read()
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardText(text)
w.CloseClipboard()
如果您通过命令行运行该代码,它的作用就像一个魅力。
【问题讨论】:
标签: python post upload urllib2