2015-05-11 3 views
1

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

# 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!

ответ

2

Решенный!

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)