Javascript 通过HTTP请求发送文件
我试图接收文件并将其存储在multer存储器中 app.post('/createlicense',upload.single('photo'),函数(req,res,next){ //这里有什么逻辑Javascript 通过HTTP请求发送文件,javascript,node.js,Javascript,Node.js,我试图接收文件并将其存储在multer存储器中 app.post('/createlicense',upload.single('photo'),函数(req,res,next){ //这里有什么逻辑 console.log("filename" ,req.body.name) if (!req.file) { console.log("No file received"); return res.send({ success:
console.log("filename" ,req.body.name)
if (!req.file) {
console.log("No file received");
return res.send({
success: false
});
} else {
console.log('file received');
var function_name = 'createLicence'
var arguments_array = [req.file.path,'Raghav','Mumbai','Approved']
invoke = require('/Users/sanjeev.natarajan/fabric-samples/fabcar/invoke.js');
invoke.invokechaincode(function_name,arguments_array)
return res.send({
success: true
})
}
});
但我没有收到任何文件-
发件人:
为了使用multer包,您必须首先定义几个参数,以便它可以在您的fileDirectory上工作
在server.js中:
let multer = require('multer');
let storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, '/path/to/storage/')
},
filename: function(req, file, callback) {
callback(null, file.originalname + '-' + Date.now());
}
});
let upload = multer({
storage: storage
});
现在,配置您的路线
router.route('/your/payload')
.post(authController.isAuthenticated, upload.any(), albumController.postFile)
请注意,upload.any()
将允许您一次上载多个不同格式的文件。根据需要,可以随意使用任何其他类型的upload.method()
从这一点来看,multer
已经完成了它的工作,但是您可能希望跟踪上传到服务器上的文件
因此,在您自己的模块中,逻辑非常简单:
(我假设您使用的是猫鼬模型,因为您没有提供太多信息,但无论如何这不是相关部分)
此配置和中间件的使用仅用于测试目的,在未仔细处理上载过程(文件完整性、资源管理等)的情况下,绝不允许任何人将内容上载到您的服务器。开放的上载系统可能会成为一个非常大的后门,直接进入您的服务器
希望这有帮助,
注意。请包括所有相关信息(代码、错误、日志)作为文本而不是图像。我没有收到任何错误,但req.file未定义请添加代码并堆栈跟踪和配置。node js代码已添加请将您的代码作为文本粘贴到问题中。并使用
CTRL-k
将其格式化。这仅用于上载文件,然后在ipfs中创建哈希。非常感谢
router.route('/your/payload')
.post(authController.isAuthenticated, upload.any(), albumController.postFile)
exports.postFile = async (req, res) => {
if (!req || !req.files || !req.files[0]) return res.status(400).send("Bad request.");
for (let i = 0; req.files[i]; i++) {
await File.create({
path: req.files[i],
originalName: req.files[i].originalName,
mimetype: req.files[i].mimetype,
owner: req.user.userId
}, (err, file) => {
if (err) console.log("Something went wrong: " + err); else {
// Do something with file
}
});
}
return res.status(418).send("I'm a teapot.");
}