3

我的目的是上传图像并进行一些图像处理。现在,我打算渲染上传的图像。

我使用这里的代码来构建我的前端,并使用bottle在python中编写后端,如下所示:

@route('/test', method='POST')
def serve_image():
    # import pdb; pdb.set_trace()
    image = Image.open(request.body)
    image.show()

我收到如下错误

OSError:无法识别图像文件 <_io.BytesIO 对象位于 0x0000017386B53A40>

我错过了什么?

编辑:当我打印整个请求时,这就是我得到的

<http://localhost:8080/test>

4

1 回答 1

1

该教程不是很全面,但完整的文档更有用:

图像数据作为标准多部分表单帖子的一部分上传,并作为名为webcam.

因此,与其尝试将整个请求正文传递给 Pillow,不如只传递该元素,使用request.filesmultidict,并访问其file属性以获取缓冲区:

image = Image.open(request.files['webcam'].file)
于 2018-09-30T17:50:24.823 回答