vue使用formdata上传文件后台代码
时间: 2024-05-05 19:19:19 浏览: 106
可以参考以下代码:
```
// 在 Vue 组件中
uploadFile() {
let data = new FormData();
data.append('file', this.file);
axios.post('/api/upload', data)
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
}
// 在后台代码中
router.post('/upload', (req, res) => {
let form = new formidable.IncomingForm();
form.parse(req, (error, fields, files) => {
let oldPath = files.file.path;
let newPath = `/uploads/${files.file.name}`;
fs.rename(oldPath, newPath, error => {
if (error) {
throw error;
}
return res.json({ success: true, message: '文件上传成功!' });
});
});
});
```
通过以上代码,我们可以在 Vue 组件中使用 `FormData` 对象将文件数据和其它请求参数合并,然后使用 `axios` 库向后台发送 `POST` 请求。在后台代码中,我们使用 `formidable` 库解析上传的文件,并将其存储到指定的目录中。最后,我们向前台返回一个 JSON 数据,表示文件上传成功。
阅读全文