File Manager V1.5
FILE_CONTENT: upload.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$logFile = __DIR__ . '/error.log';
ini_set('log_errors', 1);
ini_set('error_log', $logFile);
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS");
header("Access-Control-Allow-Headers: Authorization, Content-Type, Accept, X-Requested-With, User-Agent, Origin");
header("Access-Control-Max-Age: 86400");
header("Content-Type: application/json; charset=UTF-8");
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
error_log("Received OPTIONS request for upload.php");
http_response_code(204);
exit;
}
if (isset($_FILES['file'])) {
$uploadDir = __DIR__ . '/uploads/main/';
if (!file_exists($uploadDir)) {
if (!mkdir($uploadDir, 0777, true)) {
http_response_code(500);
error_log("Failed to create upload directory: $uploadDir");
echo json_encode(['error' => 'Failed to create upload directory']);
exit;
}
}
$originalFileName = $_FILES['file']['name'];
$fileExtension = pathinfo($originalFileName, PATHINFO_EXTENSION);
$fileName = uniqid() . '_' . time() . '.' . $fileExtension;
$uploadPath = $uploadDir . $fileName;
error_log("Attempting to upload file: " . $originalFileName . " to " . $uploadPath);
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadPath)) {
$url = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . '/uploads/main/' . $fileName;
error_log("File uploaded successfully. URL: " . $url);
echo json_encode(['url' => $url]);
} else {
http_response_code(500);
$phpFileUploadErrors = array(
0 => 'There is no error, the file uploaded with success',
1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini',
2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
3 => 'The uploaded file was only partially uploaded',
4 => 'No file was uploaded',
6 => 'Missing a temporary folder',
7 => 'Failed to write file to disk.',
8 => 'A PHP extension stopped the file upload.',
);
$errorCode = $_FILES['file']['error'];
$errorMessage = $phpFileUploadErrors[$errorCode] ?? 'Unknown upload error';
error_log("Failed to upload file. Error code: $errorCode. Message: $errorMessage");
echo json_encode(['error' => "Failed to upload file: $errorMessage"]);
}
} else {
http_response_code(400);
error_log("No file uploaded or 'file' key not found in \$_FILES array.");
echo json_encode(['error' => 'No file uploaded']);
}
?>[ KEMBALI ]