![](/img/trans.png)
[英]How to send objects from server to client side components in react-express node app
[英]How to retrieve file on server side send with ajax for a node/express app
我有一个 Node/Express 应用程序,我想发送一个带有表单的文件,我想用 ajax 发送它,以便我可以处理服务器响应。
到目前为止,我的表格是:
<form method='POST' enctype='multipart/form-data' id='excelform'>
<input type='file' id='target_file' name='target_file' required>
</form>
<button class='btn btn-menu3 align-self-end' onClick='excel_email9f();'>Enviar</button>
我有一个按钮,它为 ajax 请求调用以下函数:
function excel_email9f(){
var data = new FormData();
var file = $('#target_file')[0].files[0];
data.append('file', file);
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "/Excelemail9f",
data: data,
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (data) {
var response = data.q0;
alert(response);
},
error: function (e) {
console.log("ERROR : ", e);
}
});
};
我可以访问该文件及其名称等属性。
在服务器端,我有这条路线
app.post('/Excelemail9f',function(req,res){
// checking req.files is empty or not
if (Object.keys(req.files).length == 0) {
return res.status(400).send('No files were uploaded.');
}
console.log('name: ' + req.files.target_file.name);
let target_file = req.files.target_file;
// target_file.mv(path, callback)
target_file.mv(path.join(__dirname, 'uploads', target_file.name), (err) => {
if (err) throw err;
res.send(JSON.stringify({q0 : 0}));
})
})
我如何访问服务器端的文件,我使用req.files.target_file
但我收到以下错误:
类型错误:无法读取未定义的属性“名称”
你post
荷兰国际集团的数据作为FormData
对象,但你指的是作为文件名的HTML输入元素的ID。 您可以通过调用data.append('file', file);
填充FormData
对象data.append('file', file);
,所以你需要通过req.files.file
而不是req.files.target_file
来引用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.