mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-04 05:12:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Upload a given file into /var/tmp
 | 
						|
 */
 | 
						|
$TOPDIR = '..';
 | 
						|
require_once "$TOPDIR/lib/functions.php";
 | 
						|
require_once "$TOPDIR/lib/jsonwrapper.php";
 | 
						|
 | 
						|
session_start();
 | 
						|
 | 
						|
if (!is_logged()) {
 | 
						|
	echo "You are not logged in!";
 | 
						|
	return;
 | 
						|
}
 | 
						|
 | 
						|
// Set the file upload size limit (not sure if this actually works)
 | 
						|
ini_set('upload_max_filesize', '4096M');
 | 
						|
ini_set('post_max_size', '4096M');
 | 
						|
ini_set('max_input_time', -1);
 | 
						|
 | 
						|
// Set time limit on how long this can run
 | 
						|
set_time_limit(1200);
 | 
						|
 | 
						|
// Grab the target destination and file type
 | 
						|
$dest =  $_GET["destination"];
 | 
						|
 | 
						|
// Only allow uploads onto /install
 | 
						|
if (strcmp(substr($dest, 0, 9), "/install/") != 0) {
 | 
						|
	echo "You are only authorized to upload onto /install subdirectories";
 | 
						|
	return;
 | 
						|
}
 | 
						|
 | 
						|
$file = $_FILES["file"]["name"];
 | 
						|
$path = $dest . "/" . $file;
 | 
						|
	
 | 
						|
if (move_uploaded_file($_FILES["file"]["tmp_name"], $path)) {
 | 
						|
	echo "File successfully uploaded";
 | 
						|
	chmod($path, 0755);  // Change file to be executable
 | 
						|
} else {
 | 
						|
	echo "Failed to upload file to $path. ";
 | 
						|
	
 | 
						|
	// Obtain the reason for failure
 | 
						|
	$reason = "";
 | 
						|
	switch ($_FILES["file"]["error"]) {
 | 
						|
		case 1:
 | 
						|
			$reason = "The file is bigger than the PHP installation allows.";
 | 
						|
			break;
 | 
						|
		case 2:
 | 
						|
			$reason = "The file is bigger than this form allows.";
 | 
						|
			break;
 | 
						|
		case 3:
 | 
						|
			$reason = "Only part of the file was uploaded.";
 | 
						|
			break;
 | 
						|
		case 4:
 | 
						|
			$reason = "No file was uploaded.";
 | 
						|
			break;
 | 
						|
		default:
 | 
						|
			$reason = "Unknown error.";
 | 
						|
	}
 | 
						|
	
 | 
						|
	echo $reason;
 | 
						|
}
 | 
						|
?>
 |