しょっちゅう忘れることを書いておく。
![]() |
66 |
1488 views
Flaskを使って画像をアップロードする簡単なサンプルコードを紹介します。画像をアップロードする際には、まずサーバー側でアップロードディレクトリを設定し、画像の保存先を決める必要があります。以下にそのサンプルコードを示します。
import os
from flask import Flask, request, jsonify
app = Flask(__name__)
UPLOAD_FOLDER = './uploads'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
# アップロードフォルダが存在しない場合、作成する
if not os.path.exists(UPLOAD_FOLDER):
os.makedirs(UPLOAD_FOLDER)
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
if 'file' in request.files:
file = request.files['file']
if file and allowed_file(file.filename):
filepath = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)
file.save(filepath)
return jsonify({"message": "File uploaded successfully", "filename": file.filename})
return jsonify({"error": "No file uploaded"})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=False)
ALLOWED_EXTENSIONS
に定義された拡張子(png
, jpg
, jpeg
など)のみを許可します。file.save(filepath)
: アップロードされたファイルを指定されたパスに保存します。画像をサーバーに送信するには、curl
コマンドを使うと便利です。以下にサンプルの curl
コマンドを示します。
curl -X POST -F "file=@/home/konishi/docker/gas/test/DSC_0017.JPG;type=image/jpg" http://192.168.1.86:5000/upload
-F "file=@path/to/file"
で送信するファイルを指定します。@
の後にファイルパスを書きます。type=image/jpg
でMIMEタイプを指定します(省略しても動作します)。http://192.168.1.86:5000/upload
はFlaskサーバーのアップロードエンドポイントです。IPアドレスやポートは自分の環境に合わせて変更してください。これで、Flaskを使った画像アップロードの基本的な仕組みが実装できました。このサンプルを元に、機能を拡張することも可能です。
Page 13 of 69.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/