diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 00000000..2a4b9e99 Binary files /dev/null and b/.DS_Store differ diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 46e02398..e6a99500 --- a/README.md +++ b/README.md @@ -1,11 +1,5 @@ -`#html` `#css` `#js` `#php` `#master-in-software-development` - # PHP Local FileSystem explorer -

- Version -

- >In this project you will have to create a system file explorer that allows the user to navigate, create directories and upload files in the same way as he would in his usual operating system. >The file explorer is a tool that allows you to directly view and manipulate the files and directories associated with a path, so you must take into account from which path the user starts and which path they can access. @@ -34,13 +28,6 @@ - You should try as much as possible that the commits and the planned tasks are the same Delete files that are not used or are not necessary to evaluate the project -## Repository - -First of all you must fork this project into your GitHub account. - -To create a fork on GitHub is as easy as clicking the “fork” button on the repository page. - -Fork on GitHub ## Technologies used @@ -58,3 +45,11 @@ To create a fork on GitHub is as easy as clicking the “fork” button on the r - [PHP FileSystem W3C](https://www.w3schools.com/php/php_ref_filesystem.asp) - [PHP FileSystem Oficial](https://www.php.net/manual/es/book.filesystem.php) - [README Guidelines Example](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2) + + +![wireframe](https://user-images.githubusercontent.com/119521997/213163669-40a794c4-4445-4cb4-a61c-60efe880d698.png) + +La organización ha sido relativamente sencilla durante todo el desarrollo del proyecto. Hemos hecho pair coding practicamente en todas las fases del mismo, y hemos dividido las tareas a realizar en subtareas más claras y concisas para poder desarrollar de forma más optioma y pudiendo poner atención a todos los detalles. + +Tal y como se puede apreciar en la imagen superior, esa es la primera idea que teniamos de como devia ser nuestro proyecto, pero finalmente realizamos algunos cambios tanto en el estilo como en el layout para poder aplicar todas las funcionalidades del proyecto de manera más eficiente y sencilla. + diff --git a/check-request.php b/check-request.php new file mode 100644 index 00000000..8c978698 --- /dev/null +++ b/check-request.php @@ -0,0 +1,25 @@ + \ No newline at end of file diff --git a/create-folder.php b/create-folder.php new file mode 100755 index 00000000..217b1792 --- /dev/null +++ b/create-folder.php @@ -0,0 +1,30 @@ + \ No newline at end of file diff --git a/delete-file.php b/delete-file.php new file mode 100644 index 00000000..7c391d0a --- /dev/null +++ b/delete-file.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/delete-folder.php b/delete-folder.php new file mode 100644 index 00000000..5862f110 --- /dev/null +++ b/delete-folder.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/edit-folder.php b/edit-folder.php new file mode 100644 index 00000000..14265cbb --- /dev/null +++ b/edit-folder.php @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/extensions/csv.png b/extensions/csv.png new file mode 100644 index 00000000..ff2372c1 Binary files /dev/null and b/extensions/csv.png differ diff --git a/extensions/doc.png b/extensions/doc.png new file mode 100644 index 00000000..58959917 Binary files /dev/null and b/extensions/doc.png differ diff --git a/extensions/exe.png b/extensions/exe.png new file mode 100644 index 00000000..55ed5bcc Binary files /dev/null and b/extensions/exe.png differ diff --git a/extensions/folder.png b/extensions/folder.png new file mode 100644 index 00000000..d16b1f56 Binary files /dev/null and b/extensions/folder.png differ diff --git a/extensions/html.png b/extensions/html.png new file mode 100644 index 00000000..5f2157a4 Binary files /dev/null and b/extensions/html.png differ diff --git a/extensions/jpg.png b/extensions/jpg.png new file mode 100644 index 00000000..7fe27521 Binary files /dev/null and b/extensions/jpg.png differ diff --git a/extensions/mp3.png b/extensions/mp3.png new file mode 100644 index 00000000..7f1249f1 Binary files /dev/null and b/extensions/mp3.png differ diff --git a/extensions/mp4.png b/extensions/mp4.png new file mode 100644 index 00000000..418fcfbb Binary files /dev/null and b/extensions/mp4.png differ diff --git a/extensions/odt.png b/extensions/odt.png new file mode 100644 index 00000000..b6dbc07a Binary files /dev/null and b/extensions/odt.png differ diff --git a/extensions/pdf.png b/extensions/pdf.png new file mode 100644 index 00000000..f81dd76f Binary files /dev/null and b/extensions/pdf.png differ diff --git a/extensions/php.png b/extensions/php.png new file mode 100644 index 00000000..3559c20a Binary files /dev/null and b/extensions/php.png differ diff --git a/extensions/png.png b/extensions/png.png new file mode 100644 index 00000000..9e6837d8 Binary files /dev/null and b/extensions/png.png differ diff --git a/extensions/rar.png b/extensions/rar.png new file mode 100644 index 00000000..a7be13b7 Binary files /dev/null and b/extensions/rar.png differ diff --git a/extensions/txt.png b/extensions/txt.png new file mode 100644 index 00000000..d7aba283 Binary files /dev/null and b/extensions/txt.png differ diff --git a/extensions/zip.png b/extensions/zip.png new file mode 100644 index 00000000..604109f4 Binary files /dev/null and b/extensions/zip.png differ diff --git a/index.php b/index.php new file mode 100755 index 00000000..a652036f --- /dev/null +++ b/index.php @@ -0,0 +1,155 @@ + + + + + + + + + + + + + File Explorer + + +
+ +
+ + + + + + + + + + + + + + + + + + + + \n\n\n\n\n"; + + } else { + + echo "\n\n\n\n\n"; + + } + + } else { + + $extensionIcon = ""; + + $dirEx = explode(".",$dir); + + $extension = end($dirEx); + + switch ($extension){ + case "mp3": + $extensionIcon = "extensions/mp3.png"; + break; + case "doc": + $extensionIcon = "extensions/doc.png"; + break; + case "exe": + $extensionIcon = "extensions/exe.png"; + break; + case "jpg": + $extensionIcon = "extensions/jpg.png"; + break; + case "mp4": + $extensionIcon = "extensions/mp4.png"; + break; + case "odt": + $extensionIcon = "extensions/odt.png"; + break; + case "pdf": + $extensionIcon = "extensions/pdf.png"; + break; + case "html": + $extensionIcon = "extensions/html.png"; + break; + case "php": + $extensionIcon = "extensions/php.png"; + break; + case "zip": + $extensionIcon = "extensions/zip.png"; + break; + case "txt": + $extensionIcon = "extensions/txt.png"; + break; + case "png": + $extensionIcon = "extensions/png.png"; + break; + } + + $size = filesize($dir); + + $sizeKB = $size / 1024 ; + $sizeMB = $sizeKB / 1024 ; + + if ( $sizeKB < 1024 ) { + + echo "\n\n\n\n\n"; + + } else { + + echo "\n\n\n\n\n"; + + } + + } + } + } + + ?> + +
ExtensionNameCreation DateLast ModifiedSize
" . date('d-m-Y H:i:s', filectime($dir)) . "" . date('d-m-Y H:i:s', filemtime($dir)) . "" . round($sizeKB, 2) . 'KB' . "
" . date('d-m-Y H:i:s', filectime($dir)) . "" . date('d-m-Y H:i:s', filemtime($dir)) . "" . round($sizeMB, 2) . 'MB' . "
" . basename($dir) . "" . date('d-m-Y H:i:s', filectime($dir)) . "" . date('d-m-Y H:i:s', filemtime($dir)) . "" . round($sizeKB, 2) . 'KB' . "
" . basename($dir) . "" . date('d-m-Y H:i:s', filectime($dir)) . "" . date('d-m-Y H:i:s', filemtime($dir)) . "" . round($sizeMB, 2) . 'MB' . "
+ + + + \ No newline at end of file diff --git a/root/.DS_Store b/root/.DS_Store new file mode 100755 index 00000000..83787f6b Binary files /dev/null and b/root/.DS_Store differ diff --git a/root/Folder/ruben.php b/root/Folder/ruben.php new file mode 100644 index 00000000..e69de29b diff --git a/root/My_videos/index.php b/root/My_videos/index.php new file mode 100755 index 00000000..e69de29b diff --git a/root/Suicide Silence - Wake Up NTM RZ v3.mp3 b/root/Suicide Silence - Wake Up NTM RZ v3.mp3 new file mode 100644 index 00000000..1ba622b2 Binary files /dev/null and b/root/Suicide Silence - Wake Up NTM RZ v3.mp3 differ diff --git a/root/archivos.zip b/root/archivos.zip new file mode 100644 index 00000000..e69de29b diff --git a/root/campingsurfer.jpg b/root/campingsurfer.jpg new file mode 100755 index 00000000..825c8ff6 Binary files /dev/null and b/root/campingsurfer.jpg differ diff --git a/root/info.txt b/root/info.txt new file mode 100644 index 00000000..e69de29b diff --git a/root/informes.pdf b/root/informes.pdf new file mode 100644 index 00000000..e69de29b diff --git a/root/music.mp4 b/root/music.mp4 new file mode 100644 index 00000000..e69de29b diff --git a/script.js b/script.js new file mode 100755 index 00000000..5d3d8db0 --- /dev/null +++ b/script.js @@ -0,0 +1,153 @@ + + +//------------------------ CREATE FOLDER ----------------------------- + +const createFolder = document.querySelector('.create-btn'); +const folderNameToCreate = document.querySelector('.folder-name'); + +createFolder.addEventListener("click", createNewFolder); + +let folder = document.querySelectorAll(".folder"); + +folder.forEach( element => element.addEventListener("click", nameFolder)); + +let nombre = ""; + +function nameFolder(e){ + nombre = e.srcElement.getAttribute("value"); + console.log(nombre); + return nombre; +} + +function createNewFolder() { + + // fetch("check-request.php") + // .then(response => response.json()) + // .then(data => nombre = data) + + let folderName = folderNameToCreate.value; + + if (nombre === "") { + + fetch ("../filesystem-explorer/create-folder.php?nameFolder="+folderName) + .then(response => response.json()) + .then(data => console.log(data)) + + } else { + + fetch ("../filesystem-explorer/create-folder.php?nameFolder="+folderName+"&name="+nombre) + .then(response => response.json()) + .then(data => console.log(data)) + } + + window.location.reload(); +} + +// -------------------- DELETE FILES & FOLDERS ---------------------- + +const deleteFiles = document.querySelectorAll(".delete-btn"); + +deleteFiles.forEach(element => { + element.addEventListener("click", deleteFolder) +}); + +function deleteFolder(event){ + const popUpDeleteConfirm = confirm("Do you want to delete this folder?"); + console.log(popUpDeleteConfirm); + if (popUpDeleteConfirm){ + let actualFolderName = event.srcElement.getAttribute("actual-folder"); + console.log(actualFolderName); + if (!actualFolderName.includes(".")) { + + fetch("delete-folder.php?actualFolderName=./"+actualFolderName) + .then(response=>response.json()) + .then(data =>console.log(data)); + } else { + fetch("delete-file.php?actualFolderName=./"+actualFolderName) + .then(response=>response.json()) + .then(data =>console.log(data)); + } + } + window.location.reload(); +} + +// ------------------- MODIFY FOLDER ------------------- + +const edit = document.querySelectorAll(".edit-btn"); + +for (let i of edit){ + i.addEventListener("click", editName); + let oldname = i.getAttribute("actualFolder"); +} + +// -------------- EDIT NAME ------------------------- + + +function editName(){ + + newname = prompt("Write the new name of the folder or file:"); + let dataform = new FormData(); + dataform.append("oldName", oldname); + dataform.append("newname", newname); + fetch ("./edit-folder.php",{ + method : "POST", + body : dataform + }) + .then(response=>response.json()) + .then(data =>console.log(data)); + + window.location.reload(); +} + +// ------------ SEARCH FUNCTION ------------------------ + +const buscador = document.querySelector(".buscador"); +const buscadorValue = document.querySelector(".buscadorValue"); +const listSearch = document.querySelector("#searchResults"); + +buscador.addEventListener("click", search); + +function search(e){ + + e.preventDefault(); + let searchValue = buscadorValue.value; + fetch("search.php?searchParam="+searchValue) + .then(response=>response.json()) + .then(data =>displayResults(data)); + +} + +function displayResults(data){ + + if (listSearch.firstChild){ + + while(listSearch.firstChild){ + + listSearch.removeChild(listSearch.firstChild); + + } + } + data.forEach(element => { + + if(element.includes(".")){ + + const li = document.createElement("li"); + li.innerHTML=""+element+""; + listSearch.appendChild(li); + + } else { + + let file = element.split("/"); + let fileName = file[file.length-1]; + const li = document.createElement("li"); + li.innerHTML=""+fileName+""; + listSearch.appendChild(li); + + } + + }); + } + + + + diff --git a/search.php b/search.php new file mode 100644 index 00000000..1653720f --- /dev/null +++ b/search.php @@ -0,0 +1,38 @@ +