Python Flask 上传多个文件

Python Flask 上传多个文件

Python Flask 上传多个文件

1. 前言

Flask 是一个使用 Python 编写的轻量级 Web 应用框架,其简洁易用的特点使其在开发 Web 应用程序时备受开发者青睐。在实际应用中,经常会遇到需要用户上传多个文件的场景,本文将介绍如何使用 Flask 实现多文件上传功能。

2. 环境准备

在开始编写代码之前,需要确保已经安装好了 Flask 库。可以使用以下命令进行安装:

pip install flask
Bash

3. 创建 Flask 应用

首先,需要在项目文件夹中创建一个名为 app.pyPython 文件。在该文件中,导入 Flask 模块并创建 Flask 应用。

from flask import Flask

app = Flask(__name__)
Python

4. 创建文件上传的路由

接下来,我们需要创建一个用于文件上传的路由。在这个路由中,我们需要先从请求中获取上传的文件,并将其保存到指定的位置。

from flask import request

@app.route('/upload', methods=['POST'])
def upload():
    # 检查是否有文件被上传
    if 'files' not in request.files:
        return 'No file uploaded!', 400

    # 获取上传的文件列表
    file_list = request.files.getlist('files')

    # 遍历文件列表,保存文件
    for file in file_list:
        # 检查文件是否存在
        if file.filename == '':
            return 'No file selected for uploading!', 400

        # 保存文件到指定位置
        file.save(file.filename)

    return 'Files uploaded successfully!', 200
Python

在上述代码中,request.files 是一个字典,其中键是要上传的文件的表单字段名称,值则是一个文件对象。通过 getlist() 方法可以获取指定字段名称对应的文件列表。

此处的示例中假设上传的文件保存在与应用程序文件同级的目录中,文件名与用户上传时的文件名保持一致。你可以根据自己的需求更改保存文件的路径和文件名。

5. 创建文件上传的表单页面

在 Flask 中,可以使用 HTML 表单来提交文件。所以我们需要在应用中创建一个表单页面,以便用户可以选择要上传的文件。

@app.route('/')
def home():
    return '''
        <html>
        <body>
        <h1>文件上传</h1>
        <form action="/upload" method="post" enctype="multipart/form-data">
            <input type="file" name="files" multiple>
            <input type="submit" value="上传">
        </form>
        </body>
        </html>
    '''
Python

上述代码中,通过 enctype="multipart/form-data" 属性指定了表单的编码类型为 multipart/form-data,以支持文件上传。表单中的 <input> 标签的 type 属性设置为 "file" 可以创建文件选择框,而 name 属性指定了文件选择框的名称。

6. 运行 Flask 应用

在完成上述步骤后,可以通过以下命令运行 Flask 应用:

python app.py
Bash

Flask 应用将会运行在默认的 localhost:5000 地址上。

7. 进行测试

现在,打开浏览器并访问 localhost:5000,你将会看到一个简单的文件上传表单。在这个表单中,你可以选择一个或多个文件进行上传。

点击上传按钮后,应用将会接收到上传的文件,并将其保存在指定的位置。如果上传成功,你将会看到 “Files uploaded successfully!” 的提示信息。

总结

本文中,我们介绍了如何使用 Flask 实现多文件上传功能。通过使用 Flask 提供的功能和方法,我们可以轻松地处理文件上传和保存。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册