diff --git a/Frontend/src/components/FileUpload.jsx b/Frontend/src/components/FileUpload.jsx new file mode 100644 index 0000000..2d017c8 --- /dev/null +++ b/Frontend/src/components/FileUpload.jsx @@ -0,0 +1,68 @@ +import React, { useState } from "react"; +import { uploadFileToHDFS } from "../utils/api"; + +const FileUpload = () => { + const [file, setFile] = useState(null); + const [hdfsPath, setHdfsPath] = useState("/kalas"); + const [uploadedFileName, setUploadedFileName] = useState(""); + const [username, setUsername] = useState("kalas"); + + const handleSubmit = (e) => { + e.preventDefault(); + if (!file || !uploadedFileName) { + return; + } + uploadFileToHDFS(file, hdfsPath, uploadedFileName, username); + }; + + return ( +
+

Upload File Your File

+ + { + setFile(e.target.files[0]); + setUploadedFileName(e.target.files[0]?.name || ""); + }} + className="mb-2" + /> + + {/* setHdfsPath(e.target.value)} + className="border p-2 mb-2 w-full" + /> */} + + {/* setUploadedFileName(e.target.value)} + className="border p-2 mb-2 w-full" + /> */} + + {/* setUsername(e.target.value)} + className="border p-2 mb-2 w-full" + /> */} + + +
+ ); +}; + +export default FileUpload; diff --git a/Frontend/src/pages/UserPages/Dashboard.jsx b/Frontend/src/pages/UserPages/Dashboard.jsx index d866320..9e1a582 100644 --- a/Frontend/src/pages/UserPages/Dashboard.jsx +++ b/Frontend/src/pages/UserPages/Dashboard.jsx @@ -1,6 +1,8 @@ import React from "react"; import Sidebar from "../../components/Sidebar"; import FileList from "../../components/FileList"; +import FileUpload from "../../components/FileUpload"; +import { FiPlus } from "react-icons/fi"; const Dashboard = () => { const [files, setFiles] = React.useState([]); @@ -18,10 +20,88 @@ const Dashboard = () => { return ( <> + {/* */} +
+
+

Dashboard

+ +
+ +
+ {/* */} +
diff --git a/Frontend/src/utils/api.js b/Frontend/src/utils/api.js new file mode 100644 index 0000000..0c47348 --- /dev/null +++ b/Frontend/src/utils/api.js @@ -0,0 +1,34 @@ +// utils/api.js +export const uploadFileToHDFS = async ( + file, + hdfsPath, + uploadedFileName, + username +) => { + const formData = new FormData(); + formData.append("file", file); + formData.append("hdfsPath", "/kalas"); + formData.append("uploadedFileName", uploadedFileName); + formData.append("username", "kalas"); + + try { + const response = await fetch( + "http://192.168.29.61:8080/api/hdfs/uploadFile", + { + method: "POST", + body: formData, + } + ); + + if (response.ok) { + const data = await response.json(); // or response.json() if JSON is returned + + console.log("Response:", data); + } else { + console.error("Upload failed with status:", response.status); + } + } catch (error) { + console.error("Error uploading file:", error); + alert("An error occurred while uploading the file."); + } +};