1

我目前正在尝试生成一个内存中的图像文件,我想要upload一个服务器。我正在为用Werkzeug. Werkzeug 支持文件,我可以通过request.fileswerkzeug 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,以便数据实际上是正确的并正确存储?

4

0 回答 0