【发布时间】:2010-02-01 06:01:12
【问题描述】:
使用 WSGI、webob 和 PIL,我尝试直接从请求中对文件使用 Image.open()。但是,Image.open() 总是抛出异常“无法识别图像文件”。图像是唯一的字段,不使用其他 POST 或 GET 变量。该文件来自带有 enctype="multipart/form-data" 的标准 HTML 上传表单。
import Image, ImageFile
from webob import Request
def application(environ, start_response):
req = Request(environ)
req.make_body_seekable()
im = Image.open(req.body_file) # "Cannot identify image file"
im.save('testfileio.png','PNG')
我的猜测是我没有正确加载上传的图像数据,但不确定正确的做法是什么。
【问题讨论】:
-
当你说它是“POSTed”时,你的意思是你正在使用一个特殊的工具来POST一个body为
Content-Type: image/png的请求吗?或者你只是说你有一个浏览器和一个只有一个字段的multipart/form-data表单,一个<input type="file">?如果是后者,那么您仍然需要以通常的方式解析表单以从中获取文件上传字段。 -
是后者,这是标准的HTML文件上传表单。