码迷,mamicode.com
首页 > Web开发 > 详细

nodejs 文件上传

时间:2017-08-27 12:03:40      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:syn   original   data   nbsp   party   sci   console   显示   var   

方法一:---------支持中文,图片显示------------
//-------文件上传------
router.post(‘/imgupload‘,function(req,res){
//-----------------------------------------
var form = new multiparty.Form();
//设置编辑
form.encoding = ‘utf-8‘;
//设置文件存储路径
form.uploadDir = "./uploads/";
//设置单文件大小限制
form.maxFilesSize = 2 * 1024 * 1024;
//form.maxFields = 1000; 设置所以文件的大小总和

form.parse(req, function(err, fields, files) {

for(var key in files){
console.log(key+‘==‘+files[key]);
for(var kk in files[key][0].headers){
console.log(kk+‘===‘+files[key][0].headers[kk]);
}
}
file1 = files[‘myimg‘];
paraname = file1[0].fieldName; //参数名myimg
originalFilename = file1[0].originalFilename; //原始文件名
tmpPath = file1[0].path;//uploads\mrecQCv2cGlZbj-UMjNyw_Bz.txt
fileSize = file1[0].size; //文件大小

var timestamp=new Date().getTime(); //获取当前时间戳
newPath= ‘./public/images/‘+timestamp+originalFilename;

var fileReadStream = fs.createReadStream(tmpPath);
var fileWriteStream = fs.createWriteStream(newPath);
fileReadStream.pipe(fileWriteStream); //管道流
fileWriteStream.on(‘close‘,function(){
console.log(‘copy over‘);
});
/*
function writeFile(data){
fs.writeFile(newPath,data,function(error){
if(error){
throw error;
}else{
console.log("文件已保存");
}
});
}
fs.readFile(tmpPath,‘ascii‘,function(err, data) {
if (err) {
console.log("读取失败");
} else {
writeFile(data);
}
});
*/

//重命名为真实文件名
/*
fs.rename(tmpPath, newPath, function(err) {
if(err){
console.log(‘rename error: ‘ + err);
} else {
console.log(‘rename ok‘);
}
});
*/
//删除临时文件夹中的文件
//fs.unlinkSync(tmpPath);

});
//-----------------------------------------
res.send(‘上传完成‘);
});

方法二:
//----------有中文问题,图片显示不出来-----------
//-------文件上传------
router.post(‘/imgupload‘,function(req,res){
//-----------------------------------------
var form = new multiparty.Form();
//设置编辑
form.encoding = ‘utf-8‘;
//设置文件存储路径
form.uploadDir = "./uploads/";
//设置单文件大小限制
form.maxFilesSize = 2 * 1024 * 1024;
//form.maxFields = 1000; 设置所以文件的大小总和

form.parse(req, function(err, fields, files) {

for(var key in files){
console.log(key+‘==‘+files[key]);
for(var kk in files[key][0].headers){
console.log(kk+‘===‘+files[key][0].headers[kk]);
}
}
file1 = files[‘myimg‘];
paraname = file1[0].fieldName; //参数名myimg
originalFilename = file1[0].originalFilename; //原始文件名
tmpPath = file1[0].path;//uploads\mrecQCv2cGlZbj-UMjNyw_Bz.txt
fileSize = file1[0].size; //文件大小

var timestamp=new Date().getTime(); //获取当前时间戳
newPath= ‘./public/images/‘+timestamp+originalFilename;

function writeFile(data){
fs.writeFile(newPath,data,function(error){
if(error){
throw error;
}else{
console.log("文件已保存");
}
});
}
fs.readFile(tmpPath,‘ascii‘,function(err, data) {
if (err) {
console.log("读取失败");
} else {
writeFile(data);
}
});

//重命名为真实文件名
/*
fs.rename(tmpPath, newPath, function(err) {
if(err){
console.log(‘rename error: ‘ + err);
} else {
console.log(‘rename ok‘);
}
});
*/
//删除临时文件夹中的文件
//fs.unlinkSync(tmpPath);

});
//-----------------------------------------
res.send(‘上传完成‘);
});

 

nodejs 文件上传

标签:syn   original   data   nbsp   party   sci   console   显示   var   

原文地址:http://www.cnblogs.com/yu-hailong/p/7439871.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!