我对python相当陌生,所以我提前道歉,如果这是简单的我很想念。我试图将数据发布到Python中的多部分形式。该脚本运行,但不会发布。我不确定我做错了什么。试图在python中发布多部分表单数据,不会发布
import urllib, urllib2
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
def toqueXF():
register_openers()
url = "http://localhost/trunk/admin/new.php"
values = {'form':open('/test.pdf'),
'bandingxml':open('/banding.xml'),
'desc':'description'}
data, headers = multipart_encode(values)
request = urllib2.Request(url, data, headers)
response = urllib2.urlopen(request)
the_page = response.read()
print the_page
当我把这个,打印给我的网页的HTML,就好像我跑“urllib2.urlopen(URL)”,并没有发布任何数据:
<form enctype="multipart/form-data" action="" method="post">
<p><input type="hidden" name="MAX_FILE_SIZE" value="1000000000" /></p>
<p>Select PDF file to create form from: <input name="form" type="file" /></p>
<p>(Optional): Select banding XML file: <input name="bandingxml" type="file" /></p>
<p>Enter description of form: <input name="desc" type="text"/><br/></p>
<p><input type="submit" value="Upload form" /></p>
</form>
海报在对数据进行编码为multipart/form数据,并可以在这里找到:http://atlee.ca/software/poster/index.html
我发现用海报这里的代码:Using MultipartPostHandler to POST form-data with Python
如果任何人的好奇,我想一个在为queXF(开源光学标记识别软件)生成后,自动发布pdf和xml带区文件。 http://quexf.sourceforge.net/
''bandingxml':'/ banding.xml' - 您需要在此行上使用open('/ banding.xml')',以匹配上面的行? –
我确实需要开放;然而,我已经尝试过,没有开放。它仍然不会发布 – abclg
您是否尝试将MAX_FILE_SIZE及其值添加到您的值中?服务器可能会期待它。 – Gerrat