前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >node通过formidable上传图片模块功能实现

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

作者头像
用户1272076
发布2019-03-26 16:34:51
9050
发布2019-03-26 16:34:51
举报
文章被收录于专栏:张培跃张培跃

张培跃

ID:laozhangsishu

不止于前端

关注

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

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}格式的图片`
                    })
                })
            }
        }
    })
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 张培跃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档