uploadMiddleware.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. exports.upload = void 0;
  7. const multer_1 = __importDefault(require("multer"));
  8. const path_1 = __importDefault(require("path"));
  9. const fs_1 = __importDefault(require("fs"));
  10. const storage = multer_1.default.diskStorage({
  11. destination: (req, file, cb) => {
  12. const uploadDir = '/home/yangfei/OTA/temp';
  13. if (!fs_1.default.existsSync(uploadDir)) {
  14. fs_1.default.mkdirSync(uploadDir, { recursive: true });
  15. }
  16. cb(null, uploadDir);
  17. },
  18. filename: (req, file, cb) => {
  19. const timestamp = Date.now();
  20. const originalName = path_1.default.basename(file.originalname);
  21. const filename = `${timestamp}-${originalName}`;
  22. cb(null, filename);
  23. }
  24. });
  25. const fileFilter = (req, file, cb) => {
  26. if (file.mimetype.startsWith('application/octet-stream') || file.mimetype === 'application/x-binary' ||
  27. file.mimetype.startsWith('application/') || file.mimetype.startsWith('image/') ||
  28. file.mimetype.startsWith('text/')) {
  29. cb(null, true);
  30. }
  31. else {
  32. cb(new Error('Invalid file type. Only binary files are allowed.'));
  33. }
  34. };
  35. exports.upload = (0, multer_1.default)({
  36. storage,
  37. fileFilter,
  38. limits: {
  39. fileSize: 100 * 1024 * 1024
  40. }
  41. });
  42. //# sourceMappingURL=uploadMiddleware.js.map