node通过formidable上传图片模块功能实现

老铁们,最近杂事较多,变懒了!我直接上传代码啦!欢迎找错!

var fs=require("fs");
var formidable=require("formidable");
/*
* 上传图片的模块
* req,请求对象
* picName,上传name名字
* cb:回调函数
* 返回结果:
*   cb({
        status:1,//1、上传的是一个空文件  2上传成功啦 3 上传格式错误
        params:params  //表单当中,除了上传文件之外的内容 。
        newName:图片的名字。
        msg:结果的文字说明
    })*/
module.exports.upPic=function(req,picName,cb){
    var form = new formidable.IncomingForm();   //创建上传表单
    form.encoding = 'utf-8';        //设置编辑
    form.uploadDir = "./upload"     //设置上传目录
    form.keepExtensions = true;     //保留后缀
    form.maxFieldsSize = 2 * 1024 * 1024;   //文件大小
    form.parse(req,(err,params,file)=>{
        if(file[picName].size<=0){
            fs.unlink(file[picName].path,(err)=>{
                cb({
                    status:1,//上传的是一个空文件
                    params:params,
                    msg:"请选择上传的图片"
                })
            })
        }else{
            var num=file[picName].path.lastIndexOf(".");
            var extension=file[picName].path.substr(num).toLowerCase();
            //支持图片上传的格式。
            var imgType=".jpg.jpeg.png.gif";
            //验证上传图片的类型是不是图片格式
            if(imgType.includes(extension)){
                var newName=(new Date()).getTime()+extension;
                //改变名字(重命名),异步
                fs.rename(file[picName].path,form.uploadDir+"/"+newName,(err)=>{
                    cb({
                        status:2,//上传成功啦
                        params:params,
                        newName:newName,
                        msg:"上传成功"
                    })
                })
            }else{
                fs.unlink(file[picName].path,(err)=>{
                    cb({
                        status:3,//上传格式错误
                        params:params,
                        msg:`请上传${imgType}格式的图片`
                    })
                })
            }
        }
    })
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,420评论 25 708
  • 昨天,我在网上购买了日本著名作家村上春树的作品《当我跑步时我谈些什么》,据说这是他写的只有一个人的书。村上春树是一...
    田野9527阅读 315评论 0 0
  • 谁没有委屈呢?谁都想痛痛快快,潇潇洒洒的生活。谁都不希望受制于其他人和事,可是,经历一些所谓的委屈之后,我越发明白...
    语过添情_7d99阅读 345评论 0 0
  • 这几天来觉得今天的天气还是对得起大家当然也对得起我还有那个远方,远方的那个你一个多么好的人我喜欢用美好比喻 我把一...
    王春涞阅读 149评论 4 13
  • 最近有读者在后台问,“为什么朋友圈总有人没完没了地装逼,开车要拍照,吃西餐要拍照,住旅店也要拍照,45度角仰望天空...
    靡音小丸子阅读 539评论 0 3