English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Flaskでファイルアップロードを処理するのは非常に簡単です。enctype属性が'multipart'に設定されている必要があります。/form-data'のHTMLフォームに文を提出し、指定されたURLに送信します。URLハンドラはrequest.files[]オブジェクトからファイルを抽出し、必要な場所に保存します。
アップロードされたファイルはまずサーバーの一時的な場所に保存され、その後最終的な場所に保存されます。ターゲットファイルの名前はハードコードされたものまたはrequest.files[file]オブジェクトのfilename属性から取得できますが、secure_filename()関数を使用して安全なバージョンを取得することをお勧めします。
Flaskオブジェクトの設定設定でデフォルトのアップロードフォルダのパスとアップロードファイルの最大サイズを定義できます。
変数 | 説明 |
app.config[‘UPLOAD_FOLDER’] | アップロードフォルダのパスを定義します |
app.config[‘MAX_CONTENT_PATH’] | アップロードするファイルの最大サイズを指定します - バイト単位で |
以下のコードはURLを持っています: /uploadルール、このルールはtemplatesフォルダ内のupload.htmlファイルを表示し、uploader()関数を呼び出してアップロードプロセスを処理するURL => /upload-fileルール。
upload.htmlにはファイル選択ボタンと提出ボタンがあります。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Flaskサンプル</title> </head> <body> <form action = "http://localhost:5000/upload" method = "POST" enctype = "multipart/form-data"> <input type = "file" name = "file" /> <input type = "submit" value="提出"/> </form> </body> </html>
以下のスクリーンショットのように表示されます -
ファイルを選択した後、クリックしてください 提出。 フォームのPOSTメソッドがURLを呼び出します=> /upload_file。 下層関数uploader()がファイル保存操作を実行します。
以下はFlaskアプリケーションのPythonコードです。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 from flask import Flask, render_template, request from werkzeug import secure_filename app = Flask(__name__) @app.route('/upload, methods=['GET', 'POST']) def upload_file(): if request.method == 'POST': f = request.files['file'] print(request.files) f.save(secure_filename(f.filename)) return 'file uploaded successfully' else: return render_template('upload.html') if __name__ == '__main__': app.run(debug=True)
プログラムを実行後、上記のコードを実行し、画像ファイルを選択してアップロードをクリックすると、以下の結果が得られます -