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')
        })

    }
})

Leave a Reply

Your email address will not be published. Required fields are marked *