• nodejs 文件上传


    方法一:---------支持中文,图片显示------------
    //-------文件上传------
    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;//uploadsmrecQCv2cGlZbj-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;//uploadsmrecQCv2cGlZbj-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('上传完成');
    });

  • 相关阅读:
    第1章 数据结构绪论
    收集的名言警句
    Asp.net MVC知识积累
    我的书单
    ASP.NET Web API
    贱人语录
    正则表达式入门
    Lucene 3.0
    Solr之java操作
    Elasticsearch
  • 原文地址:https://www.cnblogs.com/yu-hailong/p/7439871.html
Copyright © 2020-2023  润新知