Flask 使用 Flask 实现文件上传和下载

Flask 使用 Flask 实现文件上传和下载

在本文中,我们将介绍如何使用 Flask 实现文件的上传和下载功能。文件上传和下载是 Web 开发中非常常见的功能,而 Flask 提供了简单易用的工具来实现这些功能。

阅读更多:Flask 教程

文件上传

Flask 提供了 request 对象来处理客户端请求,通过该对象我们可以获取上传的文件。在进行文件上传之前,我们首先需要在 HTML 表单中设置对应的 enctype 属性为 multipart/form-data,以支持文件上传。

下面是一个简单的文件上传的 HTML 表单示例:

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="Upload">
</form>
HTML

我们可以使用 request.files 来获取上传的文件。下面是一个将上传的文件保存到本地的示例代码:

from flask import Flask, request

app = Flask(__name__)

@app.route("/upload", methods=["POST"])
def upload():
    file = request.files["file"]
    file.save("/path/to/save/location")
    return "File uploaded successfully!"

if __name__ == "__main__":
    app.run()
Python

在上述示例中,通过 request.files["file"] 获取上传的文件对象,然后使用 save() 方法将文件保存到指定位置。最后,返回一个成功上传的提示信息。

文件下载

文件下载与文件上传相对应,我们同样需要在服务器端提供文件下载的功能。Flask 提供了 send_file 方法来发送文件给客户端,让客户端可以下载文件。

下面是一个简单的文件下载的示例代码:

from flask import Flask, send_file

app = Flask(__name__)

@app.route("/download")
def download():
    file_path = "/path/to/file"
    return send_file(file_path, as_attachment=True)

if __name__ == "__main__":
    app.run()
Python

在上述示例中,我们通过调用 send_file 方法来发送文件给客户端,其中 as_attachment=True 表示将文件作为附件下载。客户端收到该响应后,即可下载该文件。

总结

通过本文的介绍,我们学习了如何使用 Flask 实现文件的上传和下载功能。Flask 提供了简单易用的工具,使得我们可以轻松处理文件上传和下载的需求。希望本文对大家有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册