vue from表单提交文件
时间: 2023-05-23 08:04:27 浏览: 106
A: vue中使用from表单提交文件可通过以下步骤实现:
1. 在template中添加from表单:
```
<form enctype="multipart/form-data" @submit="submitForm">
<input type="file" name="file">
<button type="submit">提交</button>
</form>
```
2. 在methods中添加submitForm方法,并使用axios.post()方法提交表单数据:
```
methods: {
submitForm(e) {
e.preventDefault();
let formData = new FormData();
formData.append('file', this.$refs.file.files[0]);
axios.post('/upload', formData).then(response => {
console.log(response);
}).catch(error => {
console.log(error);
});
}
}
```
在此代码中,我们使用FormData对象来创建并添加文件,使用axios.post()方法将文件提交到服务器端的/upload路径。
3. 在服务器端接收文件。在Node.js中可以使用express框架的multer中间件来实现:
```
const express = require('express');
const multer = require('multer');
const app = express();
const storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, 'uploads/');
},
filename: function(req, file, cb) {
cb(null, file.originalname);
}
});
const upload = multer({ storage: storage });
app.post('/upload', upload.single('file'), function(req, res) {
console.log(req.file);
res.send('文件上传成功!');
});
app.listen(3000, function() {
console.log('服务器启动成功!');
});
```
在此代码中,我们使用multer中间件来接收文件并存储到指定的文件夹中,上传成功后发送响应信息'文件上传成功!'。
阅读全文