【发布时间】:2019-07-18 22:34:45
【问题描述】:
服务器节点JS文件上传whit multer:
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, callBack) {
console.log(req.body);
callBack(null, 'public/images/');
}, filename: function (req, file, callBack) {
callBack(null, 'someName');
}
});
var upload = multer({ storage: storage }).single('file');
outer.post('/uploads',uploads.single('file'),
function(req, res) {
//console.log(JSON.stringify(req.files.file));
console.log('/////////////////////////////////');
console.log(JSON.stringify(req.body));
console.log(JSON.stringify(req.params))
console.log(req.files.file)
var base64Data = req.files.file.data.toString('base64').replace(/^data:image\/jpeg;base64,/, "");
//console.log(base64Data);
var time = Date.now().toString()+"out.jpeg" ;
fs.writeFile('public/images'+"/"+time, base64Data, 'base64', function(err) {
console.log(err +' §§§§§§§§§§§' );
});
res.status(204).end();
}
);
前端 Ionic 3:
var name = "upload";
var par = {
token : this.myToken ,
contenu_titre : this.contenu_titre ,
contenu_text : this.contenu_text ,
contenu_type : 'img' ,
} ;
let option: FileUploadOptions = {
params : par,
fileKey:'file',
mimeType:'image/jpeg',
httpMethod:'POST',
fileName:'user_step4#'+name
};
let loader = this.loadingCtrl.create({
content: "Uploading...."
});
loader.present();
const fileTransfer:FileTransferObject = this.transfer.create();
// console.log('filename'+this.curfilename);
fileTransfer.upload(this.photo ,encodeURI(this.linkPic+"/publication/uploads"),option).then((result)=>
{
alert('uploaded')
console.log('success');
console.log(result);
loader.dismiss();
}).catch(error=>{
loader.dismiss();
alert(error);
console.log('uploaderror');
console.log(error.message);
});
}
我想获取服务器中的参数值, 每次都未定义或为空 我想从我的文件中获取一些参数以将参数保存在我的数据库中。 上传工作正常,但没有得到参数 req.body 返回{} 并且 req.file 只返回文件名和文件
【问题讨论】:
-
我没有看到 req.params 写在服务器代码的任何地方。请问可以通过console.log(req.params)试试吗?
-
req.params 返回此{}
-
你能不能把它放在代码中并在这里更新它!它会给出一个清晰的画面。
-
它更新了..