Python Flask 文件上传限制:allowed_file 函数详解

这段代码定义了一个函数 allowed_file 和一个变量 ALLOWED_EXTENSIONS,并将 Flask 应用程序命名为 app

函数 allowed_file 根据文件名判断文件是否是允许上传的类型,只有当文件后缀名在 ALLOWED_EXTENSIONS 集合中时才返回 True,否则返回 False

变量 ALLOWED_EXTENSIONS 是一个包含允许上传的文件类型后缀名的集合。

示例代码:

ALLOWED_EXTENSIONS = {'png', 'jpg', 'JPG', 'PNG', 'bmp'}

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

app = Flask(__name__, static_url_path='/static')

解释:

  • ALLOWED_EXTENSIONS = {'png', 'jpg', 'JPG', 'PNG', 'bmp'}: 定义一个集合 ALLOWED_EXTENSIONS,包含允许上传的图片文件类型,包括 png, jpg, JPG, PNG, bmp

  • def allowed_file(filename): 定义一个函数 allowed_file,它接收文件名作为参数,并返回一个布尔值。

  • return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS: 该语句判断文件名中是否包含句点 ('.'),即是否包含文件扩展名。如果包含,则提取最后一个句点后的字符串(即文件扩展名)并判断它是否在 ALLOWED_EXTENSIONS 集合中。如果两个条件都满足,则返回 True,否则返回 False

  • app = Flask(__name__, static_url_path='/static'): 创建一个 Flask 应用程序,并使用 static_url_path 参数来指定静态文件的 URL 路径。这意味着在访问静态文件时,需要在 URL 中添加 /static/ 前缀。

如何使用:

在 Flask 应用程序中,你可以使用 allowed_file 函数来检查上传的文件是否允许。例如,在处理上传文件请求的路由中,你可以添加以下代码来验证文件类型:

from flask import Flask, request, render_template

# ... 其他代码 ...

@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        file = request.files['file']
        if file.filename == '':
            return 'No selected file' # 文件未选择
        if file and allowed_file(file.filename):
            # ... 保存文件 ...
            return 'File uploaded successfully' # 文件上传成功
        else:
            return 'File type not allowed' # 文件类型不允许
    return render_template('upload.html') # 返回上传文件页面

总结:

这段代码展示了如何在 Flask 应用程序中使用 allowed_file 函数来限制文件上传类型。通过定义 ALLOWED_EXTENSIONS 集合和 allowed_file 函数,你可以轻松地控制哪些类型的文件可以被上传到你的应用程序。

Python Flask 文件上传限制:allowed_file 函数详解

原文地址: https://www.cveoy.top/t/topic/otWf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录