<?php
// Function to generate random folder name
function generateRandomFolderName($length = 16) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
// Set base upload directory
$baseUploadDir = __DIR__ . '/uploads/';
// Create base upload directory if it doesn't exist
if (!is_dir($baseUploadDir)) {
mkdir($baseUploadDir, 0755, true);
}
// Generate random folder for this session
$sessionFolder = generateRandomFolderName();
$uploadDir = $baseUploadDir . $sessionFolder . '/';
// Check if form was submitted
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) {
// Create the session folder if it doesn't exist
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0755, true);
}
$file = $_FILES['file'];
$fileName = basename($file['name']);
$targetFile = $uploadDir . $fileName;
// Check for errors
if ($file['error'] !== 0) {
die("Error: File upload failed.");
}
// Move file to upload directory
if (move_uploaded_file($file['tmp_name'], $targetFile)) {
echo "File uploaded successfully: <a href='uploads/$sessionFolder/$fileName'>$fileName</a>";
} else {
echo "Error: Unable to upload file.";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP File Uploader</title>
</head>
<body>
<h2>Upload a File</h2>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" required>
<button type="submit">Upload</button>
</form>
</body>
</html>