POST StringIO объект и открыть с помощью PIL

Когда я разместил изображение, загруженное с помощью StringIO, и использовал web.py для получения объекта StringIO, я не смог открыть его с помощью PIL. Мой POST-код:

# encoding:utf-8
import requests
from StringIO import StringIO

img = open('test.jpg').read()
img = StringIO(img)
files = {'img': img}
baseUrl = r'http://localhost:8080/test'
requests.post(baseUrl, files = files)

Мои файлы Web.py index.py

import web
from PIL import Image
urls = ('/test', 'Test')

class Test:

    def GET(self):
        pass
    def POST(self):
        data = web.input()
        # How: Use PIL to open the data?
        img = Image.open(StringIO(data.img)) # report error

Thks!

1 ответ

Решено!

POST файлы должны быть записаны:

# encoding:utf-8
import requests
from StringIO import StringIO
from PIL import Image

f = StringIO()
img = Image.open('test.jpg')
img.save(f, "JPEG")
f.seek(0)
files = {'img': f}
baseUrl = r'http://localhost:8080/test'
requests.post(baseUrl, files = files)
Другие вопросы по тегам