Skip to content

Commit

Permalink
Initial commit of Upload2USB stick app: 3 *.php files + UK logo
Browse files Browse the repository at this point in the history
  • Loading branch information
avni committed Jan 5, 2025
1 parent 886e98c commit eb84190
Show file tree
Hide file tree
Showing 4 changed files with 188 additions and 0 deletions.
50 changes: 50 additions & 0 deletions roles/usb_lib/files/upload2usb/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?php
/*
* index.php
* Upload2USB App Index Page
*/

include("upload2usb.php");

//Check if folder for today exists, and get file count if it does

$file_count = getFileCount(getTargetFolderPath(0));

?>

<!DOCTYPE html>
<html>

<head>
<title>IIAB Homework Submission App</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="/common/css/bootstrap4.min.css"/>
<link rel="stylesheet" href="/common/css/fa.all.min.css"/>
<link rel="stylesheet" href="/common/css/font-faces.css"/>
<script src="/common/js/jquery.min.js"></script>
<script src="/common/js/bootstrap4.min.js"></script>
</head>
<body class="text-center" style="background-color:#f5f5f5;">
<div id="container" class="container">
<div class="row">
<div class="col-sm-6 offset-sm-3 text-center" style="padding:15px;">

<form action="submit-hw.php" id="hw_submission_form" method="post" enctype="multipart/form-data">
<img class="mb-4" src="unleash-kids-swing.png" alt="" width="75">
<h1 class="h3 mb-3 font-weight-normal">Internet in a Box Homework Submission</h1>

<label for="submit_hw" style="font-weight:bold;padding-bottom:10px;">Submit your homework here!</label>
<input type="file" name="hw_submission" id="hw_submission"><br/><br/>
<button class="btn btn-dark" name="submit" type="submit" style="width:150px;">Submit</button>
</form>
<br/>
<?php echo $file_count ?> homework files have been submitted today!

</div>
</div>
</div>

</body>
</html>
Binary file added roles/usb_lib/files/upload2usb/uk-swing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 70 additions & 0 deletions roles/usb_lib/files/upload2usb/upload-file.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?php
/*
* upload-file.php
* Upload2USB App - Process Submission
*/

include("upload2usb.php");

//get folder path where homework will be stored
$target_folder_path = getTargetFolderPath(1);
$target_file = $target_folder_path . "/" . basename($_FILES["hw_submission"]["name"]);
$upload_ok = 1;
$upload_msg = "";

if(!isset($_POST["submit"]) || empty(basename($_FILES["hw_submission"]["name"]))) {
$upload_msg = "No file submitted.";
$upload_ok = 0;
} elseif (file_exists($target_file)) {
$upload_msg = "This file already exists.";
$upload_ok = 0;
}

// Check if $upload_ok is set to 0 by an error
if ($upload_ok == 0) {
$upload_msg = "&#x274C; Your file was not uploaded. " . $upload_msg;

// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["hw_submission"]["tmp_name"], $target_file)) {
$upload_msg = "&#x1F60A; &#x2705; Your homework file ". htmlspecialchars( basename( $_FILES["hw_submission"]["name"])). " was successfully uploaded!";
} else {
$upload_msg = "&#x274C; There was an error uploading your file. " . $upload_msg;
}
}

$file_count = getFileCount($target_folder_path)

?>

<!DOCTYPE html>
<html>

<head>
<title>IIAB Homework Submission App</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="/common/css/bootstrap4.min.css"/>
<link rel="stylesheet" href="/common/css/fa.all.min.css"/>
<link rel="stylesheet" href="/common/css/font-faces.css"/>
<script src="/common/js/jquery.min.js"></script>
<script src="/common/js/bootstrap4.min.js"></script>
</head>
<body class="text-center" style="background-color:#f5f5f5;">
<div id="container" class="container">
<div class="row">
<div class="col-sm-6 offset-sm-3 text-center" style="padding:15px;">

<img class="mb-4" src="unleash-kids-swing.png" alt="" width="75">
<h1 class="h3 mb-3 font-weight-normal">Internet in a Box Homework Submission</h1>
<?php echo $upload_msg ?> <br/>
<?php echo $file_count ?> homework files have been submitted today!

</div>
</div>
</div>

</body>
</html>

68 changes: 68 additions & 0 deletions roles/usb_lib/files/upload2usb/upload2usb.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<?php
/*
* upload2usb.php
* Upload2USB App Helper Functions
*/


//return the first removable USB drive location
function getTargetUSBDriveLocation () {
// Get the first removal USB drive using
// lsblk --output NAME,TRAN,RM,MOUNTPOINT --pairs |grep RM=\"1\" | grep -v MOUNTPOINT=\"\" |grep -oP '[^/]MOUNTPOINT="\K[^"]*' -m 1
// lsblk --output NAME,TRAN,RM,MOUNTPOINT --pairs |grep RM=\"1\" | grep -v MOUNTPOINT=\"\" | cut -d " " -f 4 | cut -d "=" -f 2

$removable_usb_path = trim(str_replace('"', '', shell_exec('lsblk --output NAME,TRAN,RM,MOUNTPOINT --pairs |grep RM=\"1\" | grep -v MOUNTPOINT=\"\" | cut -d " " -f 4 | cut -d "=" -f 2')));

if (empty($removable_usb_path)) {
return "/library/www/html/local_content/";
} else {

return $removable_usb_path . "/";
}

}

//returns folder path where homework will be stored, if create_folder_p = 1, it will create the folder if it doesn't exist
function getTargetFolderPath ($create_folder_p) {
$parent_dir = getTargetUSBDriveLocation();


error_log("PARENTDIR: " . $parent_dir);

$today_folder_name = "UPLOADS." . date("Y-m-d");
$target_folder_path = $parent_dir . $today_folder_name;

if (!file_exists($target_folder_path) && $create_folder_p) {
mkdir($target_folder_path, 0777);

}

return $target_folder_path;

}

//return number of files within a specified folder
function getFileCount ($folder_path) {
return count(glob($folder_path . "/*"));
}

//*** TODO *** check file content to see if it's unique or not
function isFileContentUnique ($file) {


}


//*** TODO **** check if file exists based on file name and return unique name if does
function getUniqueFileName ($filename) {

}


// Check file size - we are not going to check file size for now.
// elseif ($_FILES["hw_submission"]["size"] > 5000000) {
// $upload_msg = "Your file is too large.";
// $upload_ok = 0;
// }

?>

0 comments on commit eb84190

Please sign in to comment.