Javascript 如何在node/express应用程序的服务器端检索使用ajax发送的文件
我有一个Node/Express应用程序,我想用表单发送一个文件,我想用ajax发送它,这样我就可以处理服务器响应 到目前为止,我的表格是:Javascript 如何在node/express应用程序的服务器端检索使用ajax发送的文件,javascript,html,node.js,Javascript,Html,Node.js,我有一个Node/Express应用程序,我想用表单发送一个文件,我想用ajax发送它,这样我就可以处理服务器响应 到目前为止,我的表格是: <form method='POST' enctype='multipart/form-data' id='excelform'> <input type='file' id='target_file' name='target_file' requi
<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>
我可以访问文件及其属性,如名称
在服务器端,我有这个路由
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\u file
,但出现以下错误:
TypeError:无法读取未定义的属性“name”您正在将数据作为
FormData
对象发布,但您正在引用HTML输入元素的ID作为文件名。通过调用data.append('file',file),填充FormData
对象
,因此您需要通过req.files.file
而不是req.files.target\u file
来引用它,您可以发布console.log('name:',req.files)的输出吗代码>?
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}));
})
})