nodejs上传图片

方法一:

exports.upload = function(req, res){
    //引入必要的包
    var fs = require('fs');
    var path = require('path');

    //获取上传的文件名称,路径
    var fileName = req.files.image.filename;
    var tmp_path = req.files.image.path;
    var target_path = __dirname + "/upload/" + fileName;

    //判断文件是否存在
    path.exists(tmp_path, function(isExist){
        if (isExist){
            //在这部执行将tmp下的图片重名到指定的目录下
            fs.rename(tmp_path, target_path, function(err){
                if (err){
                    console.dir(err); //如果这里打印出错误,请查看target_path路径
                };
            });
        } else {
            console.log("No");
        }
    });

    console.dir(req.files);

    //Redirec index.
    res.redirect("/");
}

方法二:

exports.upload = function(req, res){
    var fs = require('fs');
    var path = require('path');
    var util = require('util');
    var fileName = req.files.image.filename;
    var tmp_path = req.files.image.path;
    var target_path = __dirname + "/upload/" + fileName;

    path.exists(tmp_path, function(isExist){
        if (isExist){
            ins = fs.createReadStream(tmp_path);
            ous = fs.createWriteStream(__dirname + "/upload/" + fileName);
            util.pump(ins, ous, function(err){
                console.dir(err);
                });
        } else {
            console.log("No");
        }
    });

    console.dir(req.files);
    //Redirec index.
    res.redirect("/");
}

注意:方法一可以在使用完后,不用删除tmp下的图片,它会自动删除tmp下的文件。但是方法二,要手动删除tmp下的图片。

李国松的博客诞生喽

哈喽,大家好。欢迎来到我的博客。

我之前一直将文章记录在百度空间,原因很简单,我习惯将百度设为首页,查找资料方便,记录日志也方便(其实我更喜欢谷歌)。但是最近发现百度空间的两个缺点,让我有点难以忍受。 继续阅读