axios请求post到的图片乱码
时间: 2023-10-10 09:15:12 浏览: 97
如果你使用 axios 发送 post 请求并且请求的数据是二进制数据(比如图片),则需要使用 FormData 对象来封装数据。示例代码如下:
```javascript
const formData = new FormData();
formData.append('file', file); // file 是一个文件对象,比如通过 <input type="file"> 获取的文件
axios.post('/api/upload', formData).then(response => {
// 处理响应结果
}).catch(error => {
// 处理错误
});
```
在服务端,你需要使用合适的框架(比如 Express 或 Koa)来处理请求,并且需要安装和配置相关的中间件才能正确解析 FormData 数据。例如,使用 multer 中间件来解析 FormData 数据,示例代码如下:
```javascript
const express = require('express');
const multer = require('multer');
const app = express();
const storage = multer.memoryStorage(); // 暂存文件到内存中,避免写入磁盘
const upload = multer({ storage });
app.post('/api/upload', upload.single('file'), (req, res) => {
// req.file 是上传的文件对象
// 处理上传的文件,比如保存到磁盘或存储到数据库
res.send('文件上传成功');
});
app.listen(3000, () => {
console.log('服务器已启动');
});
```
这样,客户端发送的二进制数据就能正确地传输和处理了。
阅读全文