我是用python及flank框架怎么接收这三张图片并存储在本地
时间: 2024-03-21 08:42:28 浏览: 163
详解Python下载图片并保存本地的两种方式
在Python及Flask框架中,可以使用`flask`和`werkzeug`模块提供的`FileStorage`和`request`对象来处理文件上传。以下是一个示例代码,可以实现接收并保存前端上传的文件:
```python
from flask import Flask, request
import os
app = Flask(__name__)
# 处理上传请求
@app.route('/upload', methods=['POST'])
def upload():
# 获取上传的文件数据
files = request.files.getlist('file')
# 遍历文件数组,保存到本地磁盘
for file in files:
filename = file.filename
file.save(os.path.join('uploads', filename))
return 'Upload success!'
if __name__ == '__main__':
app.run()
```
上面的代码中,使用`request.files.getlist`方法获取名为`file`的文件数组,然后可以遍历数组,对每个文件进行一些处理,例如保存到本地磁盘、存储到数据库等。最后,通过返回`'Upload success!'`字符串,告诉前端上传成功。
需要注意的是,为了能够接收`multipart/form-data`格式的请求体,需要在`Flask`应用中添加`multipart/form-data`解析器。可以在应用初始化时添加如下代码:
```python
from werkzeug.utils import secure_filename
app.config['UPLOAD_FOLDER'] = 'uploads'
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 限制文件大小为16MB
app.config['ALLOWED_EXTENSIONS'] = {'jpg', 'jpeg', 'png', 'gif'}
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in app.config['ALLOWED_EXTENSIONS']
@app.route('/upload', methods=['POST'])
def upload():
files = request.files.getlist('file')
for file in files:
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return 'Upload success!'
```
上面的代码中,`UPLOAD_FOLDER`指定了文件保存的目录,`MAX_CONTENT_LENGTH`用于限制上传文件的大小,`ALLOWED_EXTENSIONS`指定了允许上传的文件扩展名。`allowed_file`函数用于检查文件扩展名是否合法,只有允许的扩展名才会保存到本地磁盘。
阅读全文