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('/<string:file_name>', 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 官方文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值