Skip to content

Commit 62ca505

Browse files
committed
db: added upload image functionality with upload/
1 parent 6034af7 commit 62ca505

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

db/multer.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import multer from "multer";
2+
import { v4 as uuidv4 } from "uuid";
3+
import { AppError } from "../utils/AppError.js";
4+
5+
const createMulterUploader = (folderName) => {
6+
const storage = multer.diskStorage({
7+
destination: (req, file, cb) => {
8+
cb(null, `uploads/${folderName}`);
9+
},
10+
filename: (req, file, cb) => {
11+
cb(null, uuidv4() + " - " + file.originalname);
12+
},
13+
});
14+
15+
function fileFilter(req, file, cb) {
16+
if (file.mimetype.startsWith("image/")) {
17+
cb(null, true);
18+
} else {
19+
cb(new AppError("Not supporting this mimetype", 401), false);
20+
}
21+
}
22+
23+
const upload = multer({ storage, fileFilter });
24+
25+
return upload;
26+
};
27+
28+
export const uploadSingleFile = (fieldName, folderName) => {
29+
return createMulterUploader(folderName).single(fieldName);
30+
};
31+
32+
export const uploadMultipleFiles = (arrayOfFields, folderName) => {
33+
return createMulterUploader(folderName).fields(arrayOfFields);
34+
};

0 commit comments

Comments
 (0)