From cff64fea0f9e5dc5577569fbf139e6615af743d2 Mon Sep 17 00:00:00 2001 From: swostikpati <swostikpati@gmail.com> Date: Mon, 27 Nov 2023 22:19:41 -0500 Subject: [PATCH] added unique file naming in multer also implemented file removal from create request --- back-end/src/routes/createIssue.js | 31 ++++++++++++------- .../student/CreateRequest/CreateRequest.js | 7 ++++- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/back-end/src/routes/createIssue.js b/back-end/src/routes/createIssue.js index 5d76b1f..6a6b368 100644 --- a/back-end/src/routes/createIssue.js +++ b/back-end/src/routes/createIssue.js @@ -1,19 +1,26 @@ -import multer from 'multer'; -import { createIssueHandler } from '../controllers/createIssueHandler.js'; -import express from 'express'; +import multer from "multer"; +import { createIssueHandler } from "../controllers/createIssueHandler.js"; +import express from "express"; const router = express.Router(); const storage = multer.diskStorage({ - destination: function(req, file, cb) { - cb(null, 'uploads/'); - }, - filename: function (req, file, cb) { - cb(null, file.originalname); - } - }); -const upload = multer({ storage: storage }); + destination: function (req, file, cb) { + cb(null, "uploads/"); + }, + filename: function (req, file, cb) { + // Get the current time + const currentTime = new Date().toISOString().replace(/:/g, "-"); + // Append the current time to the original filename + cb(null, currentTime + "-" + file.originalname); + } +}); +const upload = multer({ storage }); -router.post('/:studentNetID', upload.array('uploadedFiles'), createIssueHandler); +router.post( + "/:studentNetID", + upload.array("uploadedFiles"), + createIssueHandler +); export default router; diff --git a/front-end/src/components/student/CreateRequest/CreateRequest.js b/front-end/src/components/student/CreateRequest/CreateRequest.js index fa2aaf2..d388ba4 100644 --- a/front-end/src/components/student/CreateRequest/CreateRequest.js +++ b/front-end/src/components/student/CreateRequest/CreateRequest.js @@ -18,6 +18,11 @@ export function CreateRequest({ isVisible, onClose, departmentOptions, studentNa const handleFileChange = (event) => { setSelectedFiles([...selectedFiles, ...Array.from(event.target.files)]); }; + const handleFileRemove = (fileIndex) => { + // Filter out the file at the specified index + const newSelectedFiles = selectedFiles.filter((_, index) => index !== fileIndex); + setSelectedFiles(newSelectedFiles); +}; const handleFormSubmit = async (e) => { e.preventDefault(); const formData = new FormData(e.target); @@ -134,7 +139,7 @@ export function CreateRequest({ isVisible, onClose, departmentOptions, studentNa <ul className="file-list"> {selectedFiles.length > 0 ? ( selectedFiles.map((file, index) => { - return <li key={index}>{file.name}</li>; + return <li key={index} onClick={() => handleFileRemove(index)}>{file.name}</li>; }) ) : ( <li>No files uploaded</li>