web-dev-qa-db-ja.com

Flaskで画像をアップロード

プロジェクトディレクトリの静的フォルダにいくつかの画像をアップロードする必要がありますが、コードにそれを言う方法がわかりません。次のcode.pyでは、画像をアップロードして、静的フォルダと同じレベルのプロジェクトディレクトリに保存できますが、この画像は静的フォルダ内に保存できます。

@app.route('/uploader', methods = ['GET', 'POST'])
def upload_file():
   if request.method == 'POST':
      f = request.files['file']

      f.save(secure_filename(f.filename))
      return render_template('end.html')

私がしなければならないこと??みんなありがとう

14
Teor9300

upload folderを定義する必要があります

flaskドキュメントから

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

UPLOAD_FOLDER = '/path/to/the/uploads'
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])

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

def upload_file():
    if request.method == 'POST':
        # check if the post request has the file part
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        # if user does not select file, browser also
        # submit a empty part without filename
        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))

https://flask.palletsprojects.com/en/1.1.x/patterns/fileuploads/

あなたのコードはUPLOAD_FOLDER = '/path/to/static/images'またはそのようなものになります

18
PYA