Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从客户端(jquery、ajax)选择多个文件并发送到服务器(express)_Jquery_Node.js_Ajax_Express_Multer - Fatal编程技术网

从客户端(jquery、ajax)选择多个文件并发送到服务器(express)

从客户端(jquery、ajax)选择多个文件并发送到服务器(express),jquery,node.js,ajax,express,multer,Jquery,Node.js,Ajax,Express,Multer,当客户端点击上传文件时,我想在点击上传按钮时获取多个文件并上传到服务器。在这里,我使用的是带有multer的express服务器。 我尝试了单文件选择和上传,效果很好。但我无法找到多个文件上传 代码如下: 上载文件 上载文件 //main.js $(文档).ready(函数(){ $(“#uploadForm”).submit(函数(){ var data=newformdata($('#uploadForm')[0]); $.ajax({ url:“/upload”, 键入:“POST”,

当客户端点击上传文件时,我想在点击上传按钮时获取多个文件并上传到服务器。在这里,我使用的是带有multer的express服务器。 我尝试了单文件选择和上传,效果很好。但我无法找到多个文件上传

代码如下:


上载文件
上载文件
//main.js
$(文档).ready(函数(){
$(“#uploadForm”).submit(函数(){
var data=newformdata($('#uploadForm')[0]);
$.ajax({
url:“/upload”,
键入:“POST”,
contentType:false,
processData:false,
cache:false,
数据:数据,
成功:功能(res){
警报(res);
},
错误:函数(){
警报('发送请求时出错!');
}
})
});
});
//uploadfile.js
常量路径=要求(“路径”);
const multer=要求(“multer”);
常数fs=要求('fs');
常量mkdirp=要求(“mkdirp”);
//设置存储引擎
const storage=multer.diskStorage({
目标:path.join(uu dirname,“../../public/storage/”),
文件名:函数(请求、文件、cb){
cb(null,file.originalname);
}
})
const upload=multer({
存储:存储,
限制:{
文件大小:1000000//给出字节数
},
//fileFilter:函数(请求、文件、cb){
//检查文件类型(文件,cb);
// }
}).single('uploadFile');
//函数checkFileType(文件,cb){
//console.log(文件);
/////允许的扩展
////const filetypes=/xlsx | xlx | csv/;
/////检查分机
////var extname=filetypes.test(path.extname(file.originalname).toLocaleLowerCase());
////var mimetype=filetypes.test(file.mimetype);
////如果(extname mimetype){
////返回cb(null,true);
////}其他{
////返回cb('错误:无效文件类型!');
//     // }
// }
函数上传文件(req,res){
上传(请求、恢复、(错误)=>{
如果(错误){
//发送错误消息
控制台日志(err);
res.send(err);
}否则{
//发送正确的消息
//res.send()
res.send(“成功”);
log('文件已成功上载');
}
});
}
module.exports={
上传文件
}

您需要更改multer函数,并从
single
更改为
array

var upload = multer({ 
    storage : storage 
    limits: {
        fileSize: 1000000 //give no. of bytes
    },
}).array('uploadFile');

@Rory McCrossan谢谢。将很快更新@Rory McCrossan我试图更改它。但Sof不允许我提交帖子,告诉我你们有庞大的代码。所以我别无选择。如果你还有其他想法,请告诉我。我为你编辑了它you@Rory麦克罗森感谢汉克斯的回复。但我仍然面临jquery方面的问题。你能帮个忙吗?jQuery方面有什么问题?你的代码很好,你只需要添加更多的文件输入,或者在你拥有的单个文件上设置
multiple
属性。但是对于使用多属性选择的所有文件,如何使用formData发送数据?