File size: 1,739 Bytes
5306da4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
const express = require("express");
const {
uploadPDF,
uploadLink,
clearContext,
uploadText,
} = require("../controller/file");
const multer = require("multer");
const path = require("path");
const ragRouter = express.Router();
// const storage = multer.diskStorage({
// destination: function (req, file, cb) {
// cb(null, "uploads/");
// },
// filename: function (req, file, cb) {
// cb(null, Date.now() + "-" + file.originalname);
// },
// });
const storage = multer.memoryStorage();
const fileFilter = function (req, file, cb) {
const allowedExt = /\.(pdf|csv|ppt|pptx|doc|docx|xls|xlsx|txt)$/i;
// Allowed MIME types
const allowedMime = [
"application/pdf",
"text/csv",
"application/vnd.ms-powerpoint",
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
"application/msword",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"text/plain",
];
// Check extension
const extname = allowedExt.test(path.extname(file.originalname));
// Check mime
const mimetype = allowedMime.includes(file.mimetype);
if (extname && mimetype) {
cb(null, true);
} else {
cb(
new Error(
"Invalid file type. Only document files are allowed: PDF, CSV, PPT(X), DOC(X), XLS(X), TXT."
),
false
);
}
};
const upload = multer({
storage: storage,
fileFilter: fileFilter,
});
ragRouter.post("/pdf", upload.single("pdfFile"), uploadPDF);
ragRouter.post("/link", uploadLink);
ragRouter.post("/text", uploadText);
ragRouter.post("/clear-context", clearContext);
module.exports = ragRouter;
|