Drive / create_folder.php
Urban-Guy's picture
Create create_folder.php
80a05f9 verified
Raw History Blame Contribute Delete
2.75 kB
<?php
session_start();
$metadataFile = 'data/files.json';
function loadMetadata() {
global $metadataFile;
if (!file_exists($metadataFile)) return ['files' => []];
return json_decode(file_get_contents($metadataFile), true);
}
function saveMetadata($metadata) {
global $metadataFile;
file_put_contents($metadataFile, json_encode($metadata, JSON_PRETTY_PRINT));
}
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['folderName'])) {
$folderName = basename($_POST['folderName']);
// GET PARENT FOLDER - THIS IS THE FIX!
$parentFolder = isset($_POST['parentFolder']) ? $_POST['parentFolder'] : 'root';
// Debug log (remove after testing)
error_log("Creating folder: $folderName in parent: $parentFolder");
$metadata = loadMetadata();
// Determine parent path
$parentPath = 'uploads/';
if ($parentFolder !== 'root') {
// Find the parent folder's path
foreach ($metadata['files'] as $file) {
if ($file['id'] === $parentFolder && $file['type'] === 'folder') {
$parentPath = $file['path'] . '/';
error_log("Found parent folder path: $parentPath");
break;
}
}
}
$folderPath = $parentPath . $folderName;
// Handle duplicate folder names
$counter = 1;
$originalName = $folderName;
while (file_exists($folderPath)) {
$folderName = $originalName . '_' . $counter;
$folderPath = $parentPath . $folderName;
$counter++;
}
// Create the actual folder on disk
if (mkdir($folderPath, 0755, true)) {
// Add to metadata with correct parent folder
$newFolder = [
'id' => uniqid(),
'name' => $folderName,
'path' => $folderPath,
'type' => 'folder',
'size' => 0,
'created' => time(),
'modified' => time(),
'accessed' => time(),
'starred' => false,
'trashed' => false,
'trashedDate' => null,
'parentFolder' => $parentFolder // THIS IS CRITICAL!
];
$metadata['files'][] = $newFolder;
saveMetadata($metadata);
error_log("Folder created successfully with ID: " . $newFolder['id']);
echo json_encode([
'success' => true,
'folder' => $newFolder
]);
exit;
} else {
error_log("Failed to create folder: $folderPath");
echo json_encode([
'success' => false,
'error' => 'Failed to create folder on disk'
]);
exit;
}
}
echo json_encode([
'success' => false,
'error' => 'Invalid request'
]);
?>