Flask上传文件的前后端写法
时间: 2023-11-04 22:06:00 浏览: 10
前端页面代码(HTML):
```html
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
```
后端代码(Flask):
```python
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
file.save('path/to/save/file')
return '文件上传成功'
```
注意: 上传文件保存的路径需要是绝对路径。
相关问题
flask上传文件到mangodb的前后端写法
前端代码:
```html
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file">
<button type="submit">Upload</button>
</form>
```
后端代码:
```python
from flask import Flask, request
from pymongo import MongoClient
from bson.binary import Binary
import gridfs
app = Flask(__name__)
client = MongoClient("mongodb://localhost:27017/")
db = client["file_storage"]
fs = gridfs.GridFS(db)
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
file_id = fs.put(file.read(), filename=file.filename, content_type=file.content_type)
return f"File uploaded with id: {file_id}"
if __name__ == '__main__':
app.run(debug=True)
```
上述代码使用了Flask框架和MongoDB数据库。前端通过表单上传文件时,后端接收文件并将其存储到MongoDB中。在这里,我们使用了gridfs模块来存储文件。
文件存储过程如下:
1. 从上传的请求中获取文件对象。
2. 将文件转化为Binary格式。
3. 使用gridfs模块中的`put()`方法将文件存储到MongoDB中,并返回文件的id。
注:需要安装pymongo和gridfs模块。
flask上传文件到忙哦db的前后端写法
前端写法:
1. 创建一个表单:
```
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
```
2. 使用 JavaScript 发送表单:
```
<script>
var form = document.querySelector('form');
var input = document.querySelector('input[type="file"]');
form.addEventListener('submit', function(e) {
e.preventDefault();
var file = input.files[0];
var formData = new FormData();
formData.append('file', file);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload');
xhr.send(formData);
});
</script>
```
后端写法:
1. 导入 Flask 和 werkzeug.utils 中的 secure_filename 函数:
```
from flask import Flask, request
from werkzeug.utils import secure_filename
```
2. 创建一个 Flask 应用:
```
app = Flask(__name__)
```
3. 创建一个视图函数来处理文件上传的请求:
```
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return '上传成功'
```
其中,`secure_filename` 函数可以确保文件名是安全的,不包含任何特殊字符,防止文件名注入攻击。
最后,通过 `app.config['UPLOAD_FOLDER']` 来指定上传文件保存的目录,例如:
```
app.config['UPLOAD_FOLDER'] = '/path/to/uploads'
```