使用PIL图像打开POST上传的文件
我正在使用WSGI、webob和PIL,想直接从请求中用Image.open()
打开一个文件。不过,Image.open()
总是抛出一个异常,提示“无法识别图像文件”。这个图像是唯一的字段,没有使用其他的POST或GET变量。这个文件是通过一个标准的HTML上传表单上传的,表单的编码类型是“multipart/form-data”。
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')
我猜测是我没有正确加载上传的图像数据,但不太确定正确的做法是什么。
1 个回答
4
我对webob不太熟悉,但我猜测body_file里包含的是整个帖子(post)的内容,而不仅仅是你的图片。文档似乎也证实了这一点。
那req.POST['nameOfFileControl']里有什么呢?里面有文件句柄吗?这个文件句柄正是Image.open所需要的。