使用python海报库时获取isMultipartContent = false

时间:2010-07-17 03:25:57

标签: python google-app-engine file-upload multipartform-data poster

我正在使用python海报库尝试将包含图像的表单上传到servlet。在本地,它运行良好,但当我部署到应用程序引擎时,它不会将其识别为多部分内容。

ServletFileUpload.isMultipartContent(request)返回false

以下是我使用海报库的方式:

register_openers()
datagen, headers = multipart_encode({"image": open(filename)})
request = urllib2.Request(url, datagen, headers)

servlet检查以确保它是Multipart,但它检查失败。我该怎么做才能进一步调试?

谢谢, 牛仔

*******更新********* 打印堆栈跟踪...这就是我得到的。它抱怨内容类型标题是空的

org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException:请求不包含multipart / form-data或multipart / mixed流,内容类型标头为null     在org.apache.commons.fileupload.FileUploadBase $ FileItemIteratorImpl。(FileUploadBase.java:885)     在org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)     在org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349)     在org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)

1 个答案:

答案 0 :(得分:0)

如果您使用的是Windows(或者是一名学生;-),open(filename)是打开二进制文件的错误方法,可能会搞砸 - 请使用open(filename, 'rb')。除此之外,当然假设您继续使用已省略的urllib2.urlopen(request)import是正确的,filenameurl已正确设置以前,那么你的代码似乎是合法的。