Node.js上传图片功能

用node.js写一个图片上传功能,我看网上的示例是这样的

  var form = new formidable.IncomingForm();        //设置文件上传存放地址
        form.uploadDir = "./uploads";        //执行里面的回调函数的时候,表单已经全部接收完毕了。
        form.parse(req, function(err, fields, files) {
            var oldpath = __dirname + "/" + files.tupian.path; 
             //新的路径
            var newpath = __dirname + '/uploads/'+t+ran+extname;
                         //改名
            fs.rename(oldpath,newpath,function (err) {
                if(err){                    throw  Error("改名失败");
                }
                res.writeHead(200, {'content-type': 'text/plain'});
                res.end("成功");
            });

这个例子里的 oldpath是什么取法? “files.tupian.path”,这是什么取法?tupian是这么冒出来的

 var oldpath = __dirname + "/" + files.tupian.path;

我自己试了一下

var formidable = require("formidable");
var fs = require("fs");
var path = require("path");

var form = new formidable.IncomingForm();
//设置上传文件夹
form.uploadDir = path.normalize(__dirname + "/../public/avatar");
form.parse(req, function (err, fields, files) {
    console.log(files);
    var oldpath = __dirname + "/" + files.touxiang.path;
   
});

files能打印出来,我要取的path也有,

https://img1.mukewang.com/5ac23c730001530607870206.jpg

但我该怎么取哪个path,如果像那个例子里那样取的话会报错“TypeError: Cannot read property 'path' of undefined”

各个包的版本如下

  "dependencies": {
    "express": "^4.16.3",
    "express-session": "^1.15.6",
    "formidable": "^1.2.1",
    "fs": "^0.0.1-security",
    "md5": "^2.2.1",
    "mongodb": "^2.0.5",
    "mongoose": "^5.0.12",
    "path": "^0.12.7"
  }


村中长相较好的男子
浏览 1048回答 1
1回答

pardon110

tupian就是上传文件input 类型为file ,上传属性name , 与你写的上传文件表单相关,files.tupian.path 则为上传到服务器的临时路径
打开App,查看更多内容
随时随地看视频慕课网APP