ar fs = require('fs'); var path = require('path'); var express = require('express'); var bodyParser = require('body-parser'); var app = express(); //登录 var Login_File = path.join(__dirname, 'demo/tongxunlu.json'); var router = express.Router(); var multiparty = require('multiparty'); var util = require('util'); // 图片上传 app.post('/demo/upload',function(req, res) { // don't forget to delete all req.files when done //生成multiparty对象,并配置上传目标路径 var form = new multiparty.Form({uploadDir: './upload/picture/'}); //上传完成后处理 form.parse(req, function(err, fields, files) { var obj ={}; var filesTmp = JSON.stringify(files,null,2); if(err){ console.log('parse error: ' + err); } else { console.log('parse files: ' + filesTmp); var inputFile = files.inputFile[0]; var uploadedPath = inputFile.path; var dstPath = './upload/picture/' + inputFile.originalFilename; //重命名为真实文件名 fs.rename(uploadedPath, dstPath, function(err) { if(err){ console.log('rename error: ' + err); res.writeHead(200, {'content-type': 'text/plain;charset=utf-8'}); res.end("{'status':200, 'message': '上传失败!'}"); } else { console.log('rename ok'); res.writeHead(200, {'content-type': 'text/plain;charset=utf-8'}); res.end("{'status':400, 'message': '上传成功!'}"); } }); } }); }); module.exports = router;
1.var form = new multiparty.Form({uploadDir: './upload/picture/'});
需要注意一下,这里的文件路径并不会自动创建,需要用户在开发过程中自己在项目的根目录中创建该路径,否则就会报文件路径不存在的错误。
2.var inputFile = files.inputFile[0];
这行代码中,inputFile是form表单中的input组件的name值,这里要在postman中将请求参数调整成inputFile,否则就会报变量未定义的错误。
需要注意一下,这里的文件路径并不会自动创建,需要用户在开发过程中自己在项目的根目录中创建该路径,否则就会报文件路径不存在的错误。
2.var inputFile = files.inputFile[0];
这行代码中,inputFile是form表单中的input组件的name值,这里要在postman中将请求参数调整成inputFile,否则就会报变量未定义的错误。
作者:贾亦真亦贾 链接:https://www.jianshu.com/p/a78ee020f549 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。