multer.js 678 B

1234567891011121314151617181920212223242526272829
  1. const fs = require('fs');
  2. const multer = require('multer');
  3. if (!fs.existsSync('data/uploads')) {
  4. fs.mkdirSync('data/uploads', { recursive: true });
  5. }
  6. const storage = multer.diskStorage({
  7. destination: (req, file, cb) => {
  8. cb(null, './data/uploads');
  9. },
  10. filename: (req, file, cb) => {
  11. cb(null, Date.now() + '--' + file.originalname);
  12. },
  13. });
  14. const supportedTypes = ['jpg', 'jpeg', 'png', 'svg', 'svg+xml'];
  15. const fileFilter = (req, file, cb) => {
  16. if (supportedTypes.includes(file.mimetype.split('/')[1])) {
  17. cb(null, true);
  18. } else {
  19. cb(null, false);
  20. }
  21. };
  22. const upload = multer({ storage, fileFilter });
  23. module.exports = upload.single('icon');