flask input 文件上传
时间: 2024-06-11 18:03:43 浏览: 266
在Flask框架中,文件上传是一个常见的功能,特别是在处理用户提交的数据时。Flask提供了一个简单的接口来处理文件上传。以下是一个基本的步骤和代码示例:
1. 首先,在Flask应用中,你需要导入`request`对象,它包含了HTTP请求的所有信息,包括上传文件。
```python
from flask import Flask, request, redirect, url_for
```
2. 在路由处理器中,检查请求是否是POST类型并且包含一个名为`file`的文件字段(通常用户会上传文件时使用这个名称):
```python
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return 'No file part'
file = request.files['file']
```
3. 检查文件是否有效,例如,大小、类型等:
```python
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
# 执行其他操作,如保存到数据库或返回确认信息
else:
return 'Invalid file type or size'
```
这里`allowed_file()`函数用来检查文件扩展名或大小是否符合预期,`secure_filename()`用于确保文件名安全。
4. `app.config['UPLOAD_FOLDER']` 是用于存储文件的目录,你可能需要在`app.py`中初始化它:
```python
app.config['UPLOAD_FOLDER'] = '/path/to/your/upload/directory'
```
5. 最后,你可以返回一个响应,比如重定向到一个新的页面:
```python
return redirect(url_for('uploaded_file', filename=filename))
```
阅读全文