前端axios将后端flask传输过来的文件保存到本地
时间: 2023-10-19 12:08:20 浏览: 110
可以使用axios的responseType配置项来指定响应的数据类型为blob。然后利用FileReader对象将blob数据转换为二进制数据,再通过FormData对象将二进制数据上传到后端。
前端代码示例:
```javascript
import axios from 'axios';
const saveFile = (url, filePath) => {
axios.get(url, { responseType: 'blob' }).then((response) => {
const reader = new FileReader();
reader.readAsArrayBuffer(response.data);
reader.onload = () => {
const blob = new Blob([reader.result], { type: response.data.type });
const formData = new FormData();
formData.append('file', blob, filePath);
axios.post('/save-file', formData);
};
});
};
saveFile('/download-file', 'test.txt');
```
后端代码示例(使用Flask):
```python
from flask import Flask, request
app = Flask(__name__)
@app.route('/save-file', methods=['POST'])
def save_file():
file = request.files['file']
file.save(file.filename)
return 'File saved'
if __name__ == '__main__':
app.run()
```
阅读全文