Files
thetempusproject/app/controllers/downloads.php
Joey Kimsey 825d422d93 wip
2025-02-06 03:49:00 -05:00

64 lines
2.2 KiB
PHP

<?php
/**
* app/controllers/hermes.php
*
* This is the hermes controller.
*
* @version 3.0
* @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE]
*/
namespace TheTempusProject\Controllers;
use TheTempusProject\Hermes\Functions\Redirect;
use TheTempusProject\Bedrock\Functions\Session;
use TheTempusProject\Bedrock\Functions\Check;
use TheTempusProject\Bedrock\Functions\Input;
use TheTempusProject\Hermes\Functions\Route as Routes;
use TheTempusProject\Houdini\Classes\Issues;
use TheTempusProject\Houdini\Classes\Views;
use TheTempusProject\Houdini\Classes\Components;
use TheTempusProject\Houdini\Classes\Template;
use TheTempusProject\Classes\Controller;
use TheTempusProject\Classes\Forms;
use TheTempusProject\TheTempusProject as App;
class Downloads extends Controller {
public function index() {
Session::flash( 'success', 'Unknown download.' );
return Redirect::to( 'home/index' );
}
public function resume( $extension = 'none' ) {
if ( ! in_array( $extension, ['docx','pdf','md','txt'] ) ) {
Session::flash( 'success', 'Unknown download.' );
return Redirect::to( 'home/index' );
}
$file = APP_ROOT_DIRECTORY . 'downloads' . DIRECTORY_SEPARATOR . 'JoeyKimsey-resume-2025.' . $extension;
// Check if the file exists
if (file_exists($file)) {
// Set headers to force the download
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
// Clear the output buffer
ob_clean();
flush();
// Read and output the file
readfile($file);
exit;
} else {
Session::flash( 'success', 'Unknown download.' );
return Redirect::to( 'home/index' );
}
}
}