Python Flask文件上传/下载

Flask app 配置

配置内容:文件夹路径,运行的文件类型,文件大小限制

from flask import Flask

FILE_FOLDER = 'path/to/file_folder'
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg'])

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = FILE_FOLDER
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024

上传及下载文件

from backend import ALLOWED_EXTENSIONS, app, FILE_FOLDER
from flask import request, send_file, Blueprint
from werkzeug.utils import secure_filename
import os

blueprint = Blueprint('file', __name__)


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


def upload_file(file_id):
    if 'file' not in request.files:
        return False, "No file part"
    file = request.files['file']
    if file.filename == '':
        return False, "No selected file"
    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        save_name = f"{file_id}-{filename}"
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], save_name))
        return True, save_name


@blueprint.route('/', methods=['GET'])
def download_file(file_name):
    if '/' in file_name:
        return 'error', 400
    if file_name:
        return send_file(f"{FILE_FOLDER}/{file_name}", attachment_filename='file.jpg')
    return 'error', 400

Flask file upload 官方文档

你可能感兴趣的:(python)