gpt4 book ai didi

Python Flask "send_file()"方法类型错误

转载 作者:太空狗 更新时间:2023-10-30 01:19:19 29 4
gpt4 key购买 nike

我正在尝试读取用户上传的图像,然后将图像显示给他们。我想在不保存上传的图像文件的情况下执行此操作。

我有这样的代码:

from flask import Flask, redirect, render_template, request, url_for, send_file
from PIL import Image, ImageDraw
from io import BytesIO

app = Flask(__name__)


@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
img = Image.open(request.files['file'].stream)
byte_io = BytesIO()
img.save(byte_io, 'PNG')
byte_io.seek(0)
return send_file(byte_io, mimetype='image/png')


if __name__ == '__main__':
app.run(debug=1)

它产生这个错误:

TypeError: send_file() 得到了一个意外的关键字参数“mimetype”

我已经尝试用其他有效参数替换 mimetype,它只会给出相同的错误,但使用新参数的名称。所以我认为问题出在我的 bytes_io 上。

更新:

澄清一下,send_file() 我指的是内置的 flask.send_file() 方法:

最佳答案

来自 flask document

The mimetype guessing requires a filename or an attachment_filename to be provided.

...

  • mimetype – the mimetype of the file if provided. If a file path is given, auto detection happens as fallback, otherwise an error will be raised.

所以,你应该像这样提供

return send_file(
io.BytesIO(obj.logo.read()),
download_name='logo.png',
mimetype='image/png'
)

此示例代码应该可以正常运行,

from flask import Flask, request, send_file
app = Flask(__name__)

@app.route('/get_image')
def get_image():
if request.args.get('type') == '1':
filename = 'ok.gif'
else:
filename = 'error.gif'
return send_file(filename)


if __name__ == '__main__':
app.run()

如果还是出现同样的错误,可能是环境问题。您可以使用 pip freeze 检查您的软件包版本。

关于Python Flask "send_file()"方法类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47646624/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com