【发布时间】:2018-11-06 16:23:22
【问题描述】:
我正在使用带有 express 4 的 nodejs。我正在尝试通过单个输入字段上传多个文件。我也通过ajax提交我的表单。 我正在使用 express-fileupload 中间件来上传文件。当我上传多个文件时,它工作正常。但是当上传单个文件时,它不起作用。 html代码-
<input type="file" name="attach_file" id="msg_file" multiple />
ajax 代码-
var data = new FormData();
$.each($('#msg_file')[0].files, function(i, file) {
data.append('attach_file', file);
});
$.ajax({
url: '/send_message',
data: data,
cache: false,
contentType: false,
processData: false,
method: 'POST',
type: 'POST',
success: function(data){
console.log(data);
}
});
服务器端js代码-
router.post('/send_message', function(req, res, next){
if (!req.files)
res.json('No files were uploaded.');
let sampleFile = req.files.attach_file;
console.log(sampleFile.length);
var file_info = [];
var count = 0;
sampleFile.forEach(function(ele, key) {
ele.mv(path.resolve(`./public/upload/${ele.name}`), function(err) {
if (err){
console.log(err);
}else{
file_info.push(ele.name);
}
count++;
if(sampleFile.length == count){
res.json({file_name: file_info });
}
});
});
});
如果我上传单个文件console.log(sampleFile.length); 显示未定义。
【问题讨论】:
标签: node.js express jquery-file-upload