【问题标题】:multererror unexpected field multiple files flutter and node.jsmultererror 意外字段多个文件颤动和node.js
【发布时间】:2021-03-25 17:39:03
【问题描述】:

Flutter 表单数据

FormData formData = FormData.fromMap({
     "order_image": [
      for (var file in images)
        ...{
          await MultipartFile.fromFile(getImage(file).imageFile.path,
              filename: getImage(file).imageFile.path.split('/').last)
        }.toList()
    ],
  "user_name": "Jan"
    
  });

节点js

router.post('/express-order', uploadFile.array(orderImageKeyName), postOrders);

多重中间件

var storage = multer.diskStorage({

destination: (req, file, cb) => {
    cb(null,settings.ORDER_IMG_DIR);
  },
  
  filename: (req, file, cb) => {

    cb(null, `${Date.now()}-bezkoder-${file.originalname}`);

    
  },
});

【问题讨论】:

    标签: node.js flutter multer multifile-uploader


    【解决方案1】:

    来自Flutter 表单数据

    FormData formData = FormData.fromMap({
         "order_image": [
          for (var file in images)
            ...{
              await MultipartFile.fromFile(getImage(file).imageFile.path,
                  filename: getImage(file).imageFile.path.split('/').last)
            }.toList()
        ],
      "user_name": "Jan"
        
      });
    

    改成

    FormData formData = FormData.fromMap({
        
      "user_name": "Jan"
        
    });
    
    
    formData.files.addAll([
        for (var file in images)
          ...{
            MapEntry(
                "order_image",
                await MultipartFile.fromFile(getImage(file).imageFile.path,
                    filename: getImage(file).imageFile.path.split('/').last))
          }.toList()
      ]);
    

    来自节点 js 我们需要在upload.array 中提及计数

    multer({ storage: storage }).array(orderImageKeyName, 10)

    最终节点

    router.post('/express-order', upld, postOrders);
    

    改变multer中间件

    const util = require("util");
    
    const upld = async(req, res, next) => {
       await util.promisify(uploadFile(req, res, next));
    }
    
    var storage = multer.diskStorage({
    
    destination: (req, file, cb) => {
        cb(null,settings.ORDER_IMG_DIR);
      },
      
      filename: (req, file, cb) => {
    
        if(file.originalname.length>10)
        cb(null, `${Date.now()}-bezkoder-${file.originalname.substr(file.originalname.length-10,file.originalname.length)}`);
        
        else
        cb(null, `${Date.now()}-bezkoder-${file.originalname}`);
    
        
      },
    });
    var uploadFiles = multer({ storage: storage }).array(orderImageKeyName, 10);
    module.exports = uploadFiles;
    

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2019-07-12
      • 2021-05-06
      • 2023-02-20
      • 2018-04-13
      • 2018-02-04
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多