flaskを使用した画像配信サーバープログラムで画像表示後のファイル保存時にデフォルトファイル名を設定したい

Flaskを使用して画像を提供する場合、ダウンロード時に正しいファイル名を提供するためには、HTTPヘッダーにContent-Dispositionヘッダーを設定する必要があります。このヘッダーには、ブラウザに対してダウンロード時のファイル名を指示します。

以下は、FlaskアプリケーションでContent-Dispositionヘッダーを設定して、ブラウザが画像をダウンロードする際に正しいファイル名を提供する例です。

python

1from flask import Flask, send_file, make_response 2 3app = Flask(__name__)4 5@app.route('/download_image')6def download_image():7 # 画像ファイルのパス8 image_path = 'path_to_your_image.png'9 10 # ファイル名を取得11 file_name = 'your_image.png' # ダウンロード時のファイル名を設定12 13 # レスポンスを作成14 response = make_response(send_file(image_path))15 16 # Content-Dispositionヘッダーを設定してファイル名を指定17 response.headers['Content-Disposition'] = f'attachment; filename={file_name}'18 19 return response 20 21if __name__ == '__main__':22 app.run()

このコードでは、/download_imageエンドポイントで画像を提供し、Content-Dispositionヘッダーを使用してファイル名を設定しています。ブラウザが画像をダウンロードする際に、指定したファイル名がダイアログに表示されるはずです。

必要に応じて、file_name変数を適切なファイル名に変更してください。また、image_path変数を実際の画像ファイルのパスに設定してください。このコードをFlaskアプリケーションに統合し、適切なルートで提供することで、ダウンロード時に正しいファイル名が提供されるはずです。

試してませんが、たぶん正しいと思います。

コメントを投稿

0 コメント