文件上传是将二进制或普通文件传输到服务器的过程。 Flask使我们可以轻松地上传文件。我们需要拥有一个HTML表单, 并将加密设置为multipart / form-data。
服务器端flask脚本使用request.files [] Object从请求对象中获取文件。成功上传文件后, 该文件将保存到服务器上的所需位置。
上载的文件会保存到服务器的临时目录一段时间, 然后再保存到所需的位置。可以使用以下语法获取目标文件的名称。
name = request.files['file'].filename
但是, 我们可以提到要将文件上传到服务器的文件夹的路径以及上传文件的最大大小。所有这些都可以在flask对象的配置设置中完成。
SN | Syntax | Description |
---|---|---|
1 | app.config[‘ UPLOAD_FOLDER’ ] | 它用于提及上载文件夹。 |
2 | app.config[‘ MAX_CONTENT-PATH’ ] | 它用来表示要上传的文件的最大大小。 |
例子
在此示例中, 我们将向用户提供文件选择器(file_upload_form.html), 用户可以在其中选择文件系统中的文件并将其提交给服务器。
在服务器端, 使用request.files [‘ file’ ]对象获取文件, 并将其保存到服务器上的位置。
由于我们在同一设备上使用开发服务器, 因此文件将被上传到执行flask脚本upload.py的目录中。
upload.py
from flask import *app = Flask(__name__)@app.route('/')def upload(): return render_template("file_upload_form.html")@app.route('/success', methods = ['POST'])def success(): if request.method == 'POST':f = request.files['file']f.save(f.filename)return render_template("success.html", name = f.filename)if __name__ == '__main__': app.run(debug = True)
file_upload_form.html
<
html>
<
head>
<
title>
upload<
/title>
<
/head>
<
body>
<
form action = "/success" method = "post" enctype="multipart/form-data">
<
input type="file" name="file" />
<
input type = "submit" value="http://www.srcmini.com/Upload">
<
/form>
<
/body>
<
/html>
success.html
<
html>
<
head>
<
title>
success<
/title>
<
/head>
<
body>
<
p>
File uploaded successfully<
/p>
<
p>
File Name: {{name}}<
/p>
<
/body>
<
/html>
将向用户显示一个HTML表单, 以便用户可以浏览文件系统以查找将被上载到开发服务器的文件。
文章图片
在这里, 用户选择了一个名为galexy.jpg的文件, 该文件将被上传到服务器。
文章图片
下面的快照是为URL localhost:5000 / success生成的。成功上传文件后, 会向用户显示一条成功消息, 其中包含上传文件的名称。
文章图片
【Python Flask如何实现文件上传()】我们可以通过检查下图所示的upload.py所在的目录来确认这一点。
文章图片
推荐阅读
- Python Flask如何使用和处理cookie()
- Flask应用程序路由
- 第一个Python Flask应用示例
- Pure.CSS教程
- Pure.CSS带有水平边框的表格
- android dialog设置全屏半透明背景色
- appendappendToprependprependTobeforeinsertBeforeafterinsertAfterreplaceAll方法被调用后,原本在页面上显示的元素
- IDEA在Maven webapp项目中打jar包
- Android SurfaceFlinger服务 ----- 消息机制MessageQueue