Javascript 上传文件时如何在服务器上获取表单数据值?
我有一个表单,其中有一个Javascript 上传文件时如何在服务器上获取表单数据值?,javascript,jquery,node.js,multer,Javascript,Jquery,Node.js,Multer,我有一个表单,其中有一个用户输入字段,用户在其中键入自己的姓名,还有一个type=“file”,需要上传到服务器上 但我想在服务器上获取请求参数(user enter name)。我使用body解析器获取值(req.body),但获取未定义的 HTML <form id="fileUploadForm"> <input type="file" name="file" id="fileId"/> <input type="submit" value="
用户输入字段,用户在其中键入自己的姓名,还有一个type=“file”,需要上传到服务器上
但我想在服务器上获取请求参数(user enter name
)。我使用body解析器
获取值(req.body),但获取未定义的
HTML
<form id="fileUploadForm">
<input type="file" name="file" id="fileId"/>
<input type="submit" value="Upload" name="submit" class="submit">
username <input type="text" placeholder="enter first name" name="username" />
</form>
我的文件已成功上载到服务器上,但我对这两行内容感到困惑
var form = $('#fileUploadForm')[0];
// Create an FormData object
var data = new FormData(form);
什么是数据?从我的观点来看,数据包含需要上传的用户名值和文件数据
服务器代码
如何在服务器上获取用户名和文件数据
值。我已经使用了bodypaser插件,但req.body未定义
这是我的密码
var express = require('express');
var multer = require('multer');
var bodyParser = require('body-parser');
var cors = require('cors');
var app = express();
var PORT = process.env.PORT || 3000;
// use of body parser
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.use(cors());
var storage = multer.diskStorage({ //multers disk storage settings
destination: function (req, file, cb) {
cb(null, './uploads/')
},
filename: function (req, file, cb) {
var datetimestamp = Date.now();
cb(null, file.fieldname + '-' + datetimestamp + '.' + file.originalname.split('.')[file.originalname.split('.').length - 1])
}
});
var upload = multer({ //multer settings
storage: storage
}).single('file');
app.post('/upload', function (req, res) {
console.log(req.body)
console.log(req)
upload(req, res, function (err) {
if (err) {
res.json({error_code: 1, err_desc: err});
return;
}
res.json({error_code: 0, err_desc: null});
});
});
app.listen(PORT, () => {
console.log(`App is listening to ${PORT}`);
})
如何在服务器上获取从客户端传递的表单字段值?在formdata中再添加一个键
var data = new FormData();
var files = $("#fileId").get(0).files;
data.append("fileUploadForm", files[0]);
data.append("Username",$('[name="username"]').val());
使用reference服务器上有哪些更改?我需要我还需要更改服务器上的某些内容node.js中的服务器代码?您可以在node js中搜索“如何在node.js key value中获取表单数据”yes..var files=$(“#fileUploadForm”).get(0).files代码>正在提供未定义的设置id属性“”,并使用$(“#inputfile”).get(0).files;
var data = new FormData();
var files = $("#fileId").get(0).files;
data.append("fileUploadForm", files[0]);
data.append("Username",$('[name="username"]').val());