Node.js实现多图片上传实例

第一效应图:



这是我当时制作更多图片的代码。

总共有三个文件(常规)

1。路由条目文件(我 / routes.js这里很多次/应用程序。JS)
复制代码代码如下所示:
添加美味
app.all( /添加,添加用户。);
2。路由控制程序文件(i)
复制代码代码如下所示:
添加美味
exports.add =功能(REQ,RES){
如果(req.method = =得到){
var用户{ };
如果(请求会话。用户){
用户= req.session.user;
}
res.render(用户/ food_add
否则如果}(req.method = =后){
获取数据
var x = x请求体;
var y =请求体。Y;
无功cat_id = req.body.cat_id;
无功cat_name = req.body.cat_name;
VaR req.body.address地址=;
var title= req.body.title;
VaR desc = req.body.desc;
无功量= req.body.content;
=;
无功价格= req.body.price;
var标签= req.body.tags;
无功add_time = date.parse(新的日期())/ 1000;
var支持= 0;
var uid = req.body.uid;

处理/上传图片
/ / console.dir(要求文件);

无功file_obj = req.files.pics;
/ / console.log(file_obj。长度);
无功file_obj2 = { };
对于(var i = 0;i < file_obj.length;i++){
如果(file_obj {我},{名称)
file_obj2.push(file_obj {我});
}
}
VaR的长度= file_obj2.length;
如果(长度> 0){
file_obj2.foreach(功能(项目、指标){
如果(项目路径){
无功tmppath = item.path;
变量类型= item.type;
无功extension_name = ;
在普通的公共图像文件下移动到指定的目录
在移动时决定路径已经存在,否则会出错。
无功tmp_name =(date.parse(新的日期())/ 1000);
tmp_name = tmp_name ++(math.round(Math.random()* 9999));
确定文件类型
开关(类型){
case'image / pjpeg:extension_name = 'jpg;
打破;
case'image / JPEG:extension_name = 'jpg;
打破;
case'image / GIF:extension_name = 'gif;
打破;
case'image /格式:extension_name = 'png;
打破;
case'image / x-png:extension_name = 'png;
打破;
case'image / BMP:extension_name = 'bmp;
打破;
}
无功tmp_name = tmp_name ++ extension_name;
VaR目标路径=征收 /图像/+ tmp_name;
console.log(tmppath);
临时文件上载/移动到指定目录
Fs.rename(tmppath,目标路径、功能(ERR){)
如果(错误){
把错误;
}
如果(图片){
照片+ = ',' + tmp_name;
其他{ }
照片= tmp_name;
}
判断是否完成/
/ / console.log(指数);
删除临时文件
Fs.unlink(tmppath,函数(){(){
如果(错误){
把错误;
其他{ }
如果((索引+ 1)=长度){
console.log(目标路径);
上传处理完成
数据
var数据{ {
x:经度/经度
y:y /维
cat_id:cat_id /身份分类
cat_name:cat_name / /类名称
地址:地址
标题:标题
属性:属性 / /。
内容:内容/内容
图片:多个图像中的图片字段
价格:价格/价格
标签:标签上的标签,'独立的多重'
add_time:add_time / /支持
支持:支持默认值为0
UID:用户 / /用户ID可以是匿名的
};
food_predao.insert(数据、功能(呃,食品){
如果(错误){
res.json({错误:100、内容:'database错误});
其他{ }
res.json({错误:0、内容:成功了!,数据:食物});
}

});
}
}
});


});
}
});
其他{ }
/没有图片
数据
var数据{ {
x:经度/经度
y:y /维
cat_id:cat_id /身份分类
cat_name:cat_name / /类名称
地址:地址
标题:标题
属性:属性 / /。
内容:内容/内容
图片:多个图像中的图片字段
价格:价格/价格
标签:标签上的标签,'独立的多重'
add_time:add_time / /支持
支持:支持默认值为0
UID:用户 / /用户ID可以是匿名的
};
food_predao.insert(数据、功能(呃,食品){
如果(错误){
res.json({错误:100、内容:'database错误});
其他{ }
res.json({错误:0、内容:成功了!,数据:食物});
}

});
}


}
};
3。view file (I am /views/users/food_add.ejs)
复制代码代码如下所示:

。upload_item {宽度:50px;身高:45px;溢出:隐藏;边界:2px冲# bfbfbf;浮动:;};}
。upload_item_add {宽度:50px;身高:45px;显示:块;线高度:42px;文本对齐:中心;字体大小:;};}
upload_input { }。


var
upload_click:功能(obj){
$(obj)。父()。孩子情商()。(1)Click();
},
upload_change:功能(obj){
VaR的路径;
路径= $(obj)。瓦迩(); / / C:文件和设置 HUD 桌面 addfile.jpg
VaR AA;
AA = path.split(' ');
/ /警报(AA { AA。length-1 }); / / JPG格式的结果

变量名;
名称= path.split();
VaR BB =名字{姓名}。length-1;
/ /警报(bb.substr(0,bb.indexof(' '))); / /增加文件

$(obj)。父()。孩子情商()。(0),Css('fontsize ','12px);
$(obj)。父()。Css('borderstyle ','solid);
$(obj)。家长(孩子们)(。情商)(0),Html(bb.substr(0,bb.indexof(' ')));
如果($(obj)。母(。attr)('index)= = 1){ / /新
var =+;
$(# upload_box)。追加(HTML);
$(obj)。父()。Attr('index ','0');
}
}
};




经度:


维:


分类:分类1


地址:


标题:uff1a


简介:


内容:


图片:+


价格uff1a


标签uff1a