我想用vuejs上传一个文件到服务器,实际上我不想用表单来处理文件并上传它,我阻止自己提交和处理一些逻辑,所以在开始我想要做一些简单的只是检查它是否是一个PDF格式,如果一切正常,应该指向我的服务器端进行的NodeJS服务器用vue上传文件并接收它nodejs
Select a file
Send
export default {
name: 'app',
data() {
return {
file: ''
}
},
methods: {
onFileChange(e) {
var files = e.target.files || e.dataTransfer.files;
if (!files.length) {
return;
}
var ext = files[0].name.split('.').pop();
if(ext === 'pdf') {
this.createFile(files[0]);
}
else {
this.file = '';
this.clearFileInput(document.getElementById('inputVal'));
}
},
createFile(file) {
this.file = file;
},
clearFileInput(ctrl) {
try {
ctrl.value = null;
} catch(ex) { }
if (ctrl.value) {
ctrl.parentNode.replaceChild(ctrl.cloneNode(true), ctrl);
}
},
sendFile() {
var vm = this;
if(this.file !== '') {
this.$http.post('http://localhost:3000/upload',{params: vm.file, headers: {'Content-Type': 'multipart/form-data'}})
.then(response => {
// JSON responses are automatically parsed.
//
}, error => {
//this.errors.push(e)
});
}
}
}
}
定义在本地主机/上传我收到未定义,我不知道为什么,我只想看看我是否真的在服务器上有任何文件,如果是的话,我想将它保存在服务器端,任何帮助?
我只是做这在/上传端点:
router.post('/upload',function(req,res) {
console.log(res.body);
})
+0
不应该是req.body,因为它是请求中没有响应的对象。 req = request,res = response。 –
+0
,但我的params对象总是空{} –
+0
{params:{file:{}}, header:{'Content-Type':'multipart/form-data'}} –