Download create_folder.php from Urban-Guy/Drive: direct link, hf CLI and curl.
- Browser
- Download file 2.75 kB
-
https://huggingface.co/spaces/Urban-Guy/Drive/resolve/main/create_folder.php
- Command line
-
hf download hf://spaces/Urban-Guy/Drive/create_folder.php
-
curl -L -o create_folder.php https://huggingface.co/spaces/Urban-Guy/Drive/resolve/main/create_folder.php
2.75 kB
| 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' | |
| ]); | |