使用Multer和Express上传图像
upload image with multer and express
我正在尝试上传带有multer和express的照片,一切都很好。但是当我想使用 fs 库动态创建目录时,我需要在 multer.diskStorage()
函数中访问目标中的req.body.name
。
这可能吗?
这是我的代码:
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './public/products');
},
filename: function (req, file, callback) {
if (file.mimetype === 'image/jpg') {
callback(null, file.fieldname + '-' + Date.now() + ".jpg");
}
else if (file.mimetype === 'image/jpeg' ) {
callback(null, file.fieldname + '-' + Date.now() + ".jpeg");
}
else if (file.mimetype === 'image/png') {
callback(null, file.fieldname + '-' + Date.now() + ".png");
}
else if(file.mimetype !== 'image/jpg' || file.mimetype !== 'image/jpeg' || file.mimetype !== 'image/png' ){
return false;
}
}
});
var Create_products = multer({ storage : storage , limits: {files:1 }}).single('PRODUCT_PHOTO');
错不错?
我个人在前端(Angular js)使用了ngFileupload模块,从那里我发送数据以及文件,我正在通过req.body.fieldname
访问它,我正在使用mkdirp模块代替fs,你显然可以选择任何你想要的东西。
我提供了演示示例来实现整个事情。
如果您需要任何澄清,请告诉我。祝你好运。
路线
app.post('/whatever', funcname.single('file'), thisiscalledafterupload, route.func);
上传功能
var funcdata = multer.diskStorage({
destination: function (req, file, cb) {
var newfoldername = req.body.foldername; //here the folder name is passed along with the files - I have used angular (ngfileupload)
mkdirp(__dirname + 'somethingroot/folder/' + newfoldername, function (err) {
console.log(__dirname);
if (err) console.error(err)
cb(null, __dirname + 'somethingroot/folder/' + newfoldername);
});
},
filename: function (req, file, cb) {
var f = Date.now() + '_';
cb(null, f + file.originalname)
//file saved now the thisiscalledafterupload will be called
}
})
var funcname = multer({
storage: funcdata
});
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 使用Express捕获参数
- 如何使用Express'正确加载图像;s的静态中间件
- 如何在javascript中打开图像,由express.js sendfile函数[+SOLUTION]发送
- 上传图像而无需在express中重定向:(
- 如何使用 express js 3.X 和 angular js 将图像流式传输到 Amazon s3
- 使用Multer和Express上传图像
- 使用 Express JS 和解析云托管上传图像时出现问题
- 在Nodejs / Express中上传图像的最简单方法是什么
- 尝试在 node-js/express 中代理图像
- 从外部web服务获取图像并将其传递到另一个express js路由
- 如何存储已使用node/express上传的图像
- 如何在express.js中提供默认图像文件?
- Express:背景图像的MIME类型不正确
- 使用multer在node.js(express)中保留上传后的图像文件名和扩展名
- 在node.js web服务器上生成图像后,最简单的显示方法是什么(使用express)
- 不使用express.js将图像保存到node.js服务器
- Javascript/Express-向客户端提供图像
- Express模板未链接到脚本、css或图像
- 用于在 Express/node.js 中保存图像的内容类型