使用 Flask 上传多个文件
- 2025-03-20 08:46:00
- admin 原创
- 37
问题描述:
有没有办法用 Flask 接收多个上传的文件?我尝试了以下方法:
<form method="POST" enctype="multipart/form-data" action="/upload">
<input type="file" name="file[]" multiple="">
<input type="submit" value="add">
</form>
然后打印内容request.files['file']
:
@app.route('/upload', methods=['POST'])
def upload():
if not _upload_dir:
raise ValueError('Uploads are disabled.')
uploaded_file = flask.request.files['file']
print uploaded_file
media.add_for_upload(uploaded_file, _upload_dir)
return flask.redirect(flask.url_for('_main'))
如果我上传多个文件,它只会打印其中的第一个文件:
<FileStorage: u'test_file.mp3' ('audio/mp3')>
有没有办法使用 Flask 的内置上传处理来接收多个文件?谢谢您的帮助!
解决方案 1:
您可以使用flask.request.files的方法getlist,例如:
@app.route("/upload", methods=["POST"])
def upload():
uploaded_files = flask.request.files.getlist("file[]")
print uploaded_files
return ""
解决方案 2:
@app.route('/upload', methods=['GET','POST'])
def upload():
if flask.request.method == "POST":
files = flask.request.files.getlist("file")
for file in files:
file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
它对我有用。
对于 UPLOAD_FOLDER 如果你需要在 app = flask.Flask( name )之后添加它
UPLOAD_FOLDER = 'static/upload'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
解决方案 3:
使用Flask 1.0.2+:
files = request.files.getlist("images")
其中images
,键/值对的键为。值是多张图片。
解决方案 4:
这是适用于 Flask 版本‘1.0.2’的工作解决方案:
images = request.files.to_dict() #convert multidict to dict
for image in images: #image will be the key
print(images[image]) #this line will print value for the image key
file_name = images[image].filename
images[image].save(some_destination)
基本上,images[image] 有一个添加了保存功能的图像文件现在可以对数据进行任何您想做的事情了。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD