我目前正在尝试生成一个内存中的图像文件,我想要upload
一个服务器。我正在为用Werkzeug
. Werkzeug 支持文件,我可以通过request.files
werkzeug hast testing-utilities 访问文件,这让我可以指定要上传的类似文件的对象:
builder = EnvironBuilder(path="/someurl", method='POST',
data={'foo': 'this is some text',
'file': (StringIO('my file contents'), 'test.txt'),
'img': (Helper.create_image_file(), "img.png"),
})
存储文件的代码(缩写):
path = request.files['img'].filename
request.files['img'].save(path)
现在我想不通的是我必须传递什么作为file
实际获取图像到处理方法的关键。我目前的做法如下
@classmethod
def create_image_file(cls, height=200, width=200):
""" Create an in-memory image-file with the given height and width """
from PIL import Image
size = (height, width)
color = (255,255,0,0)
img = Image.new("RGBA", size, color)
return StringIO(img.tostring())
这只会导致磁盘上的文件不可读。那么,我如何将内存中的图像传递给 werkzeug,以便数据实际上是正确的并正确存储?