【Flask】下载多个文件
时间: 2023-08-06 22:03:54 浏览: 310
你可以使用zipfile库将多个文件打包成一个zip文件,然后提供下载链接给用户。以下是一个示例代码:
```python
import os
import zipfile
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/download')
def download():
# 要下载的文件列表
file_list = ['file1.txt', 'file2.txt', 'file3.txt']
# 打包后的zip文件名
zip_file = 'files.zip'
# 创建zip文件
with zipfile.ZipFile(zip_file, 'w') as zip:
for file in file_list:
zip.write(file)
# 返回zip文件给用户下载
return send_file(zip_file, as_attachment=True)
if __name__ == '__main__':
app.run()
```
在这个示例中,我们先将多个文件打包成一个zip文件,然后使用Flask的`send_file`函数将zip文件发送给用户,用户可以通过浏览器下载。
相关问题
Flask如何返回多个文件
Flask只能返回一个文件,但你可以将多个文件打包成一个文件,然后返回这个打包后的文件给用户下载。
以下是一个示例代码:
```python
import os
import zipfile
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/download')
def download():
# 要下载的文件列表
file_list = ['file1.txt', 'file2.txt', 'file3.txt']
# 打包后的zip文件名
zip_file = 'files.zip'
# 创建zip文件
with zipfile.ZipFile(zip_file, 'w') as zip:
for file in file_list:
zip.write(file)
# 返回zip文件给用户下载
return send_file(zip_file, as_attachment=True)
if __name__ == '__main__':
app.run()
```
在这个示例中,我们先将多个文件打包成一个zip文件,然后使用Flask的`send_file`函数将zip文件发送给用户,用户可以通过浏览器下载。
flask接口上传多个文件
在 Flask 中,可以通过 request.files 来获取上传的多个文件。以下是一个示例代码:
```python
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
files = request.files.getlist('file')
for file in files:
# 处理文件
file.save('/path/to/save/file/' + file.filename)
return '上传成功!'
if __name__ == '__main__':
app.run()
```
在上述代码中,通过 request.files.getlist('file') 获取上传的多个文件,然后使用 for 循环遍历处理每个文件,最后保存在指定目录下。
前端页面可以使用 input 标签的 multiple 属性来实现多文件上传,例如:
```html
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" multiple>
<input type="submit" value="上传">
</form>
```
在上述 HTML 代码中,input 标签的 multiple 属性可以让用户选择多个文件进行上传。
阅读全文
相关推荐
















