資源模塊:可以查找整個系統中的所有上傳資源的信息、可以支持用戶上傳資源的查看以及上傳、可以支持查看已下載資源的功能。
/*跳轉至資源界面*/
router.get('/resource', function(req, res) {
if(!req.session.user) {
return res.redirect('/');
}
var msg = null;
Resource.query({}, function (err, docs) {
if(err) {
console.log(err);
}
res.render('index', { title: '資源',
toUrl: '/resource',
toBodyUrl: '/all',
user: req.session.user,
items: docs,
msg: msg});
});
});
/*下載資源*/
router.post('/doDownLoad', function(req, res) {
if(!req.session.user) {
return res.redirect('/');
}
//console.log("req.body=="+JSON.stringify(req.body));
//console.log("req.session.user=="+JSON.stringify(req.session.user))
var filePath = Util.trim(req.body.filePath);
var downLoadResource = new DownResource({
//下載者
downLoadName: req.session.user.userName,
//下載者暱稱
downLoadNickName: req.session.user.nickName,
//下載時間
downloadTime: Util.getToday('yyyy-MM-dd HH:mm:ss'),
//資源名稱
resName: req.body.fileName,
//資源描述
resDesc: req.body.fileDesc,
//資源路徑
resPath: filePath,
//資源格式
resStyle: req.body.fileStyle,
//上傳時間
uploadTime: req.body.uploadTime,
//上傳者
userName: req.body.userName,
//上傳者暱稱
nickName: req.body.nickName
});
//console.log("downLoadResource=="+JSON.stringify(downLoadResource));
downLoadResource.save(function(err) {
if(err) {
console.log(err);
}
});
if(filePath != '') {
var fileName = encodeURI(filePath.substr(filePath.lastIndexOf("/")+1));
fs.readFile("."+filePath, "binary", function(err, file){
if(err){
res.write(err+"\n");
res.end();
}else{
res.writeHead(200, {"Content-Type": "application/octet-stream;charset=UTF-8", "Content-Disposition": "attachment; filename="+fileName});
res.write(file, "binary");
res.end();
}
});
} else {
res.redirect('/resource');
}
});
/*跳轉至資源界面*/
router.get('/resource/upload', function(req, res) {
if(!req.session.user) {
return res.redirect('/');
}
var msg = null;
if(req.param('res_msg') != undefined) {
msg = req.param('res_msg');
}
Resource.query({userName:req.session.user.userName}, function (err, docs) {
if(err) {
console.log(err);
}
res.render('index', { title: '資源',
toUrl: '/resource',
toBodyUrl: '/upload',
user: req.session.user,
items: docs,
msg: msg});
});
});
/*上傳資源*/
router.post('/doUpload', function(req, res) {
if(!req.session.user) {
return res.redirect('/');
}
var resObj = req.files.uploadResource;
var resName = resObj.name;
if(resName == '') {
//未添加資源!
return res.redirect('/resource/upload?res_msg=0');
}
/*
//文件大小1M
if(fileObj.size > 1048576) {
//上傳圖片太大!
return res.redirect('/resource/upload?res_msg=1');
}
*/
var resStyle = resName.substr(resName.indexOf(".")+1);
var resourceName = Util.trim(req.body.resourceName);
if(resourceName == '') {
resourceName = resName.substr(0, resName.indexOf("."));
}
var resourceDesc = Util.trim(req.body.resourceDesc);
if(resourceDesc == '') {
resourceDesc = '--';
}
//-------------------------文件上傳處理-------------------------------------
fs.rename(resObj.path, "./upload/"+resourceName+"."+resStyle, function(err) {
if(err){
console.log(err);
//上傳過程中出錯!
return res.redirect('/resource/upload?res_msg=2');
}
var resource = new Resource({
//資源唯一編碼
qno: Util.sequenceCD(),
//資源名稱
resName: resourceName,
//資源描述
resDesc: resourceDesc,
//資源路徑
resPath: '/upload/'+resourceName+"."+resStyle,
//資源格式
resStyle: resStyle,
//上傳時間
uploadTime: Util.getToday('yyyy-MM-dd HH:mm:ss'),
//上傳者
userName: req.session.user.userName,
//上傳者暱稱
nickName: req.session.user.nickName
});
//上傳文件信息
resource.save(resource, function(err, user) {
if(err) {
console.log(err);
//上傳文件信息保存過程中出錯!
return res.redirect('/resource/upload?res_msg=error');
}
});
res.redirect('/resource/upload');
});
//--------------------------------------------------------------
});
/*跳轉至資源界面*/
router.get('/resource/download', function(req, res) {
if(!req.session.user) {
return res.redirect('/');
}
var msg = null;
if(req.param('res_msg') != undefined) {
msg = req.param('res_msg');
}
DownResource.query({downLoadName:req.session.user.userName}, function (err, docs) {
if(err) {
console.log(err);
}
res.render('index', { title: '資源',
toUrl: '/resource',
toBodyUrl: '/download',
user: req.session.user,
items: docs,
msg: msg});
});
});
以上僅爲備忘或者分享,若有問題請大家指正或討論!!