gpt4 book ai didi

Flask 同时上传图片和文字

转载 作者:行者123 更新时间:2023-12-03 16:49:52 42 4
gpt4 key购买 nike

所以我在这里想要实现的是同时上传图片和文本。到目前为止它已经工作,但是在 Flask 上,request.files 是空的。但是,request.form 返回给我:

ImmutableMultiDict([('description', u''), ('name', u''), ('file', u'image.jpg')])

当我执行 type(request.form['file']) 时,它返回为 unicode。我如何才能使 request.files 上有图像,request.form

上有文本

<form class="form-area " id="" action="{{ url_for('templater.test') }}" method="post"  novalidate>

<label for="name">Name</label>
<input name="name" placeholder="Enter Name" type="text">

<label for="description">Description</label>
<input name="description" placeholder="Enter Description" type="text">


<input type = "file" name = "file" />

<input type = "submit"/>
</form>

@templater.route('/test', methods=['GET', 'POST'])
def test():
print request.form
if request.method == 'POST':

if 'file' not in request.form:
print 'No file part'
return redirect(request.url)
file = request.form['file']

if file.filename == '':
flash('No selected file')
return redirect(request.url)

if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(main.app.config['UPLOAD_FOLDER'], filename))

return jsonify({'status':'something'})

最佳答案

您应该在表单标签中指定enctype 属性:

<form class="form-area " id="" action="{{ url_for('templater.test') }}" method="post"  novalidate  enctype="multipart/form-data">

通过添加它,你应该能够调用文件

 files = request.files.getlist('file')
for file in files:
[...]

并且其他输入仍然以以下形式提供:

request.form.get('name')

关于Flask 同时上传图片和文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50868227/

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