PythonのWebフレームワークであるFlaskを使用して、ファイルアップロード機能を実装する方法について説明します。

Flaskでのファイルアップロードの基本

Flaskでファイルアップロードを実現する基本的なアイデアは非常にシンプルです。以下の手順で行います:

  1. <form>タグをenctype=multipart/form-dataとマークし、そのフォームに<input type=file>を配置します。
  2. アプリケーションは、リクエストオブジェクトのfilesディクショナリからファイルにアクセスします。
  3. ファイルのsave()メソッドを使用して、ファイルをファイルシステム上の特定の場所に永続的に保存します。

Flaskでのファイルアップロードのコード例

以下に、Flaskを使用してファイルを特定のアップロードフォルダにアップロードし、ユーザーにファイルを表示する非常に基本的なアプリケーションのコード例を示します。

import os
from flask import Flask, flash, request, redirect, url_for
from werkzeug.utils import secure_filename

UPLOAD_FOLDER = '/path/to/the/uploads'
ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'}

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS

@app.route('/', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            return redirect(url_for('download_file', name=filename))

このコードでは、まずアップロードされるファイルの拡張子を制限しています。これは、サーバーがクライアントに直接データを送信する場合、ユーザーが任意のファイルをアップロードできないようにするためです。次に、ファイルがアップロードされ、そのファイル名が許可されている場合、ファイルはセキュアなファイル名で保存されます。

以上が、Python Flaskでのファイルアップロードの基本的な方法とコード例です。この情報がPython Flaskでのファイルアップロード機能の実装に役立つことを願っています。.

投稿者 admin

コメントを残す

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