Haldean Brown Haldean Brown - 4 months ago 124
Python Question

Uploading multiple files with Flask

Is there a way to receive multiple uploaded files with Flask? I've tried the following:

<form method="POST" enctype="multipart/form-data" action="/upload">
<input type="file" name="file[]" multiple="">
<input type="submit" value="add">
</form>


And then printed the contents of
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'))


If I upload multiple files, it only prints the first file in the set:

<FileStorage: u'test_file.mp3' ('audio/mp3')>


Is there a way to receive multiple files using Flask's built-in upload handling? Thanks for any help!

Answer

You can use method getlist of flask.request.files, for example:

@app.route("/upload", methods=["POST"])
def upload():
    uploaded_files = flask.request.files.getlist("file[]")
    print uploaded_files
    return ""
Comments