所以我一直在努力上传excel文件,然后将其保存到数据库中。所以这就是形式。
<form method="post" enctype="multipart/form-data">
<label class="uk-form-file md-btn md-btn-primary" for="user_upload">Upload File</label>
<input
style="display:none;"
type="file"
ngf-select
ng-model="user_datasource"
name="userdatasource_upload"
id="userdatasource_upload"
accept=".xlsx,.xls,.csv"
ngf-max-size="20MB"
fd-input
ng-change="upload"/>
</form>
这是我的处理我上传的控制器
$scope.upload = function() {
Upload.upload({
url: '/api/sr/user_upload',
data: {
username: 'test',
file: file_upload
}
}).then(function(response) {
console.log(response);
});
}
这是我的节点
app.use(function(req, res, next) {
res.setHeader("Access-Control-Allow-Methods", "POST, PUT, OPTIONS, DELETE, GET");
res.header("Access-Control-Allow-Origin", "http://127.0.0.1:3000");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.post('/api/sr/user_upload',function(req, res) {
console.log('============================================,');
console.log(req);
});
所以你可以看到。我包括一切。 body-parser
,setHeader
等,但没有运气。 req.body
为空。要上传文件,然后使用用户名将其保存到数据库。在我获得用户名后,我将使用multer
请帮助我!谢谢!
答案 0 :(得分:0)
当您在此基础上使用multer时,我正在撰写此答案
multer首先保存文件,然后写入
req
表单的剩余部分 - 可以说是隐藏字段。
所以你需要在upload
函数中得到你的休息数据
upload(req, res, function(err) {
if (err) {
console.log(err);
return res.end('Error');
} else {
console.log(req.body);
req.files.forEach(function(item) {
console.log(item);
// move your file to destination
});
res.end('File uploaded to Destination');
}
});
希望这对你有用