javascript – 如何使用Multer提交可选文件提交表单?

我正在使用multer在我的快递应用程序中提交表单.问题是表单有可选的图像提交选项.这意味着用户可以根据需要添加照片,但他/她也可以提交没有图像的表单.图像提交没有问题.但是当没有图像时,multer没有提交表格,甚至没有其他字段.

const express = require('express');
const router = express.Router();
const Company = require('../controller/CompanyController');
const multer  = require('multer');
const path = require('path');

let storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, './public/images/logos');
    },
    filename: function (req, file, cb) {
        cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
    }
});

let upload = multer({ storage: storage }).any();

router.route('/companies').post(upload, Company.Create);

module.exports = router;

解决方法:

一种解决方法是在提交完成后检查req.file的值.如果您未在表单中提供文件,则req.file的值应为undefined.但是,如果您提交文件,它应该是一个对象.因此,您可以编写一个简单的if语句,如下所示:

function Create() {
  if (req.file !== undefined) {
  // process image here
  }
  // process all other fields
}

希望能帮助到你!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。