• 使用 multiparty 模块进行文件上传


    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,否则就会报变量未定义的错误。
    
    作者:贾亦真亦贾
    链接:https://www.jianshu.com/p/a78ee020f549
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    阅读笔记之FastDepth: Fast Monocular Depth Estimation on Embedded Systems
    AverageMeter一个用来记录和更新变量的工具
    Python中log的简单粗暴的设置和使用
    linux 常用命令
    flutter常用组件总结
    Docker 微服务教程
    Docker 入门教程
    Activiti工作流学习分享
    CentOS7 修改主机名
    Linux中 2>&1 的含义
  • 原文地址:https://www.cnblogs.com/BlingSun/p/9232810.html
Copyright © 2020-2023  润新知