我正在将文件从网页上传到我的nodejs服务器,该服务器已经可以工作了。该文件与其他一些输入值一起位于表单内,我找不到如何读取的信息。
HTML
<form class="modal-content" method="POST" action="http://localhost:3000/testupload" enctype="multipart/form-data" >
<span class="close">×</span>
<div class="modal-body">
<input type="file" value="Upload file" name="file" id="input-upload">
<input type="checkbox" value="Automatic Transcription" name="TESTCHECK">
<div>
<input type="checkbox" value="Automatic subtitling">
<select name="testSelect">
<option value="en-us">US English</option>
</select>
</div>
</div>
<div class="modal-footer">
<button >Upload Media</button>
</div>
</form>
nodejs
app.post("/testupload", (request, response, next) =>{
let form = new formidable.IncomingForm();
form.parse(request, function(err, fields, files){
//console.log(fields);
console.log(files.file.name); //Correctly gets the filename
//further file upload code
});
console.log(request);
response.end();
});
发布表单时,我可以取回文件输入,但是在请求中的任何地方都找不到其他输入和值。
答案 0 :(得分:1)
根据文档,您可以使用事件:
form.on('field', function(name, value) {
});
或
您也可以直接通过字段进行引用(如https://www.npmjs.com/package/formidable上的示例)
form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
res.write('received upload:\n\n');
res.end(util.inspect({fields: fields, files: files}));
});
据我了解,您需要正确命名表单字段(首先尝试一个简单的示例,即一个输入文本字段)。