2015-10-18 1 views
1

Я использую "multer": "^1.0.6", И я хочу сохранить изображение в папке загрузки. Мой кодmulter save изображение без mimetype

app.post('/post', multer({dest: './uploads/'}).single('file'), function (req, res) { 
response = { 
    message: 'File uploaded successfully', 
    filename: req.file.filename 
}; 
res.end(JSON.stringify(response)); 
}); 

Но у меня есть файл с этим именем в папке загрузки 8e6e425f8756e0bafb40ed1a3cb86964

Почему у меня это имя без MimeType?

ответ

1

Multer сохраняет файлы без расширений, которые вы можете прочитать на GitHub:

имени файла используется для определения того, что файл должен быть назван в папке. Если имя файла не указано, каждому файлу будет присвоено случайное имя, которое не включает расширение файла.

Если вы хотите сохранить с расширением, что вы пишете код, как здесь:

var storage = multer.diskStorage({ 
    destination: function (req, file, cb) { 
    cb(null, '/tmp/my-uploads') 
    }, 
    filename: function (req, file, cb) { 
    cb(null, file.originalname); // modified here or user file.mimetype 
    } 
}) 

var upload = multer({ storage: storage }) 

Всей информацию вы можете найти здесь https://github.com/expressjs/multer/blob/master/README.md

1

Multer не беспокоится о расширении файла и оставить это полностью на вашей стороне: вы должны определить себя как функцию, которая сделает это. Например, например:

var multer = require('multer'); 
var upload = multer({ storage: multer.diskStorage({ 

    destination: function (req, file, cb) { 
     cb(null, './uploads'); 
    }, 

    filename: function (req, file, cb) { 
     var ext = require('path').extname(file.originalname); 
     ext = ext.length>1 ? ext : "." + require('mime').extension(file.mimetype); 
     require('crypto').pseudoRandomBytes(16, function (err, raw) { 
     cb(null, (err ? undefined : raw.toString('hex')) + ext); 
     }); 
    } 

})}); 

app.post('/post', upload.single('file'), function (req, res) { 
    response = { 
    message: 'File uploaded successfully', 
    filename: req.file.filename 
    }; 
    res.end(JSON.stringify(response)); 
});