Flask formdata 上传多个文件
在Web开发中,经常会遇到需要上传文件的情况,比如用户上传照片、视频等。而使用Flask框架开发Web应用时,处理文件上传非常方便。本文将详细介绍如何在Flask中使用formdata上传多个文件。
准备工作
首先确保已经安装了Flask框架。如果没有安装,可以通过以下命令安装:
pip install Flask
接着,新建一个Flask应用,并创建一个包含上传文件表单的页面。
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
files = request.files.getlist('file')
for file in files:
file.save(file.filename)
return '上传成功'
return render_template('upload.html')
if __name__ == '__main__':
app.run()
在这段代码中,我们定义了一个路由’/’,允许GET和POST方法。在GET请求中,返回包含上传文件表单的页面;在POST请求中,获取用户上传的多个文件并保存到本地。
编写HTML页面
接下来,创建一个名为upload.html
的HTML文件,用于展示上传文件的表单。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Upload Files</title>
</head>
<body>
<h1>Upload Files</h1>
<form action="/" method="post" enctype="multipart/form-data">
<input type="file" name="file" multiple>
<input type="submit" value="Upload">
</form>
</body>
</html>
在这个表单中,我们使用<input type="file" name="file" multiple>
的形式来允许用户选择多个文件进行上传。
运行应用
现在可以运行Flask应用,并在浏览器中访问http://localhost:5000
来上传文件了。
python app.py
上传多个文件后,文件将保存在应用的根目录下,并返回’上传成功’的消息。
总结
通过本文的介绍,你已经学会了如何在Flask中使用formdata上传多个文件。这种方法非常适合需要用户批量上传文件的场景,如相册、附件上传等。