PythonのWebフレームワークであるFlaskを使用して、ファイルアップロード機能を実装する方法について説明します。この記事は、Flaskでmultipart/form-dataによるファイルアップロードを実現する方法という記事を参考にしています。

まず、Flaskアプリケーションの設定で、アップロードファイルのサイズ制限を設定します。これは、セキュリティ対策として重要です。Flaskでは、MAX_CONTENT_LENGTHを設定することで、データサイズの上限を設定することができます。

# flask app
app = Flask(__name__)
# limit upload file size : 1MB
app.config['MAX_CONTENT_LENGTH'] = 1 * 1024 * 1024

次に、アップロードされたファイルを保存するディレクトリを設定します。このディレクトリは、Webからアクセス可能な場所にするか、アクセス不可能な場所にするかは、業務要件によります。

# ex) set UPLOAD_DIR_PATH=C:/tmp/flaskUploadDir
UPLOAD_DIR = os.getenv("UPLOAD_DIR_PATH")

そして、ファイルアップロードのためのエンドポイントを設定します。このエンドポイントでは、request.filesからアップロードされたファイルを取得し、保存します。

@app.route('/data/upload', methods=['POST'])
def upload_multipart():
    if 'uploadFile' not in request.files:
        make_response(jsonify({'result':'uploadFile is required.'}))
    file = request.files['uploadFile']
    fileName = file.filename
    if '' == fileName:
        make_response(jsonify({'result':'filename must not empty.'}))
    saveFileName = datetime.now().strftime("%Y%m%d_%H%M%S_") + werkzeug.utils.secure_filename(fileName)
    file.save(os.path.join(UPLOAD_DIR, saveFileName))
    return make_response(jsonify({'result':'upload OK.'}))

以上のように設定することで、Flaskを使用してファイルアップロード機能を実装することができます。詳細な説明やコードの全体像については、参考リンクをご覧ください。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です