const multer = require('multer');
const sharp = require('sharp');
/* create folder uploads ngang hàng với file app.js */
var upload = multer({
storage: multer.diskStorage({
destination: function(req, file, callback) { callback(null, './uploads'); },
filename: function(req, file, callback) {
callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
}
}),
fileFilter: function(req, file, callback) {
var ext = path.extname(file.originalname)
if (ext !== '.png' && ext !== '.jpg' && ext !== '.gif' && ext !== '.jpeg') {
return callback( /*res.end('Only images are allowed')*/ null, false)
}
callback(null, true)
}
})
/* upload.any() sử dụng func này chúng ta có thể upload được nhiều file */
app.post('/upload_image', upload.any(), function(req, res, next) {
let query = req.body;
if (!req.body && !req.files) {
res.json({ success: false });
} else {
/* res.json({ success: true, files: req.files }); */
/* req.files các file upload return về một array, qua đó chúng ta có thể dễ dàng xử lý */
/* chú ý: nhớ rename file lại không nữa sinh ra lỗi. ở đay mình rename theo kích thuước mình resize. */
sharp(req.files[0].path).resize(262, 317).toFile('./uploads/'+ '262x317-'+req.files[0].filename, function(err) {
if (err) {
console.error('sharp>>>', err)
}
console.log('ok okoko')
})
}
})