nodejs中图片上传,读取,预览

来源:互联网 发布:农村淘宝服务站点查询 编辑:程序博客网 时间:2024/04/28 15:34

提供一个类似相册的功能模块,具体需求: 相册列表,新建相册,删除相册,点击进入相册,照片导入,照片删除,显示

我的做法是完全映射为文件的处理,即模拟一个简单浏览器端的文件管理系统(除导入外)


其中涉及到的知识: 1.nodejs文件操作(fs模块) 2.nodejs文件上传


nodejs文件操作

读取文件夹:
    fs.readdir(dest, function(err, files){        if (err) {            res.json({                code: 2000,                desc: 'error'            });        }        res.json({            code: 1000,            desc: 'success',            files: files        });    });

生成文件夹:
     fs.exists(dest+'/'+dirname, function(exists) {          if(!exists) {            fs.mkdir(dest+'/'+dirname)            res.json({                code: 1000,                desc: 'success'            })        } else {            res.json({                code: 2000,                desc: '相册已存在'            })        }    });


删除文件/目录:
    function deleteall(path) {        var files = [];        if(fs.existsSync(path)) {            files = fs.readdirSync(path);            files.forEach(function(file, index) {                var curPath = path + "/" + file;                if(fs.statSync(curPath).isDirectory()) {                    deleteall(curPath);                } else {                      fs.unlinkSync(curPath);                }            });            fs.rmdirSync(path);        }    };


nodejs文件上传


nodejs 官方推荐使用multer包来完成文件上传:
var fs = require('fs')var multer = require("multer");var dest = './public/pictures/'var upload = multer({ dest: dest })router.post('/import', upload.array('images', 12), function(req, res, next) {    var files = req.files    var dir = req.body.dirname    for(var i = 0; i < files.length; i++) {        var file = files[i]        fs.renameSync(file.destination+'/'+ file.filename, file.destination+'/'+dir+'/'+ file.originalname);    }    res.json({        code: 1000,        desc: '成功导入'+files.length+ '张图片'    });});


图片上传到静态资源文件目录,页面通过路径预加载预览



原创粉丝点击