【发布时间】:2018-11-11 11:55:53
【问题描述】:
我有一个带有两个文件输入字段的简单表单。一个是关于图像的,另一个是关于 mp3 文件的。
我有一个使用 multer 作为文件上传系统的快速服务器。我想将图片保存在img 中,将mp3 文件保存在music 文件夹中。
这是我迄今为止尝试过的:
var musicUpload = multer({dest: 'music'});
var imgUpload = multer({dest: 'img'});
app.post('music',
musicUpload.single('music'),
imgUpload.single('img'),
function (req, res) {
...
});
虽然这是形式:
<form action="post" enctype="multipart/form-data" action="music">
<input type="file" id="img" name="img">
<input type="file" id="music" name="music">
<input type="submit" value="Send">
</form>
我需要以不同的方式处理 2 个不同的文件,这就是我使用“single”两次的原因。但是,不幸的是,我收到了“意外字段”错误消息。
怎样才能达到效果?
附言。关于多个文件上传的问题有很多,但没有一个能解决我的具体问题。在标记这个问题时不要太快:)
【问题讨论】:
-
我发现了一个愚蠢的解决方法,即使用
multer().any()作为第一个中间件。但这会在执行其他 2 个中间件之前以任何方式复制根目录中的文件,但可以防止引发错误。无论如何,这不是我想要的 -
我认为我的代码没有错误,唯一的问题是错误的引发
-
您的代码中 dest: 'img 后缺少引号,我认为这不是您的问题,但您可能仍想修复它,以免其他人认为这是您的问题。
-
是的,已修复:)