2010-02-01 2 views
1

Используя WSGI, webob и PIL, я пытаюсь использовать Image.open() в файле непосредственно из запроса. Однако Image.open() всегда выдает исключение «не может идентифицировать файл изображения». Изображение является единственным полем, никакие другие переменные POST или GET не используются. Файл поступает из стандартной формы загрузки HTML с помощью enctype = "multipart/form-data".Открытие файла POST с файлом PIL

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') 

Я думаю, я не загружается в данных загруженное изображение правильно, но я не уверен, что правильный способ сделать это будет.

+0

Когда вы говорите, что это «POSTed», вы имеете в виду, что используете специальный инструмент для отправки запроса с телом 'Content-Type: image/png'? Или вы просто имеете в виду, что у вас есть браузер и форма «multipart/form-data» с только одним полем, ''? Если последний, то вам все равно нужно разобрать форму обычным способом, чтобы получить из нее поле для загрузки файлов. – bobince

+0

Это последняя, ​​это стандартная форма загрузки файлов в HTML. –

ответ

3

Я не famaliar с webob, но я предполагаю, что body_file содержит содержимое всего сообщения, а не только ваше изображение. Кажется, это подтверждают docs.

Что находится в req.POST ['nameOfFileControl']? У этого есть дескриптор файла? Это будет дескриптор файла, который требуется Image.open.

 Смежные вопросы

  • Нет связанных вопросов^_^