【发布时间】:2019-02-06 00:57:01
【问题描述】:
我结合multer 创建了一个 Express 应用程序,用于在我的 Node.js 应用程序中上传项目
我尝试做的是选择让我们说:
Upload 1 - that has a fieldname of upfile1
Upload 2 - that has a fieldname of upfile2
Upload 3 - that has a fieldname of upfile3
基本上,我需要分别选择我的多上传应用程序的每个上传的文件名项。每次上传都需要在应用程序中针对不同的任务进行不同的处理。让我们以 console.log 为例,我需要做一些类似的事情:
console.log(req.body.upfile1.filename);
console.log(req.body.upfile2.filename);
console.log(req.body.upfile3.filename);
使用在我的视图中使用 name 属性定义的不同字段名来选择在应用程序中处理的不同项目。
下面是我的代码
查看 [index.html]
<form id="app-form" method="POST" class="fileupload" method="post" action="app" enctype="multipart/form-data">
<h1>Multi File Uploads</h1>
<input type="file" name="upfile1" value="">
<input type="file" name="upfile2" value="">
<input type="file" name="upfile3" value="">
<input type="submit" />
</form>
NodeJS [app.js]
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});
app.post("/app", upload.any(), function(req, res) {
let files = req.files;
files.forEach(file => {
console.log(file.filename);
});
res.send(req.files);
res.end();
});
非常感谢您的帮助,谢谢!
【问题讨论】:
-
req.body.upfile1而非req.files上的文件名。还可以在 index.html 上使用带有<form action="/app" method="POST">的表单 -
别忘了
enctype="multipart/form-data" -
我的表单已经使用
<form action="/app" method="POST">我只是没有在我的问题中写它。我现在也用req.body.upfile1和console.log("upfile is: " + req.files.upfile);尝试了你的建议,但它在控制台中显示upfile is: undefined -
我现在更新了我的问题并包含了我在那里的表单操作
标签: javascript node.js node-modules multer