67

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の組み込みのアップロード処理を使用して複数のファイルを受信する方法はありますか?助けてくれてありがとう!

4

4 に答える 4

117

次に、 flask.request.filesのメソッドgetlistを使用できます。

@app.route("/upload", methods=["POST"])
def upload():
    uploaded_files = flask.request.files.getlist("file[]")
    print uploaded_files
    return ""
于 2012-08-05T14:41:55.477 に答える
23
@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
于 2019-07-26T13:00:52.593 に答える
14

Flask 1.0.2+の使用:

files = request.files.getlist("images")

imagesキーと値のペアのキーはどこにありますか。値は複数の画像です。

于 2018-09-28T15:25:20.040 に答える
7

これは、フラスコバージョン「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]には保存機能が追加された画像ファイルがあります。データを使って好きなことをしてください。

于 2018-08-28T19:41:14.853 に答える