flask文件上传

  1. 模板文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<form action="/pic/show/", method="post", enctype="multipart/form-data">
    <input type="file", name="photo">
    <input type="submit">
</form>
</body>
</html>
  1. 视图函数
@pic.route('/save/', methods=["POST"])
def save_file():
    # 获取文件上传对象
    pic_up = request.files.get('photo')
    if pic_up:
        pic_name = pic_up.filename
        # current_app代表应用程序对象
        path = os.path.join(current_app.config['UPLOAD_FOLDER'], pic_name)
        pic_up.save(path)
        return render_template('photo.html', path='upload/' + pic_name)
    else:
        return "未选择文件"
  1. 上传限制设置
@pic.route('/show/', methods=['POST'])
def show_pic():
    pic_up = request.files.get('photo')
    if pic_up and allowed_file(pic_up.filename):
        pic_name = pic_up.filename
        path = os.path.join(current_app.config.get('UPLOAD_FOLDER'), pic_name)
        pic_up.save(path)

        if os.path.getsize(path) <= current_app.config.get('MAX_SIZE'):
            return render_template('photo.html', path='upload/' + pic_name)
        else:
            os.remove(path)
            return "文件过大!!!"
    else:
        return "文件不存在或文件格式错误!!!"

其中,allowed_file函数为:

def allowed_file(file_name):
    suffix = current_app.config["ALLOWED_SUFFIX"]
    ext = os.path.splitext(file_name)[1]
    if ext != '':
        ext = ext[1:]
        return ext in suffix
    else:
        return False

配置文件中的信息为:

ALLOWED_SUFFIX = ['jpg', 'jpeg', 'png']
MAX_SIZE = 1024 * 1024
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值