| <?php |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
|
|
| |
| require_once __DIR__ . '/save.php'; |
|
|
| |
| if (!isset($_SESSION['user_id'])) { |
| http_response_code(401); |
| echo json_encode([ |
| 'success' => false, |
| 'message' => 'Authentication required' |
| ]); |
| exit; |
| } |
|
|
| $userId = $_SESSION['user_id']; |
|
|
| if ($_FILES && $_FILES['file']) { |
| $file = $_FILES['file']; |
| |
| |
| $allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp', 'image/svg+xml']; |
| if (!in_array($file['type'], $allowedTypes)) { |
| http_response_code(400); |
| echo json_encode([ |
| 'success' => false, |
| 'message' => 'Invalid file type. Allowed: JPEG, PNG, GIF, WebP, SVG' |
| ]); |
| exit; |
| } |
| |
| $maxSize = 5 * 1024 * 1024; |
| if ($file['size'] > $maxSize) { |
| http_response_code(400); |
| echo json_encode([ |
| 'success' => false, |
| 'message' => 'File too large. Maximum size: 5MB' |
| ]); |
| exit; |
| } |
| |
| |
| $extension = pathinfo($file['name'], PATHINFO_EXTENSION); |
| $timestamp = date('Y-m-d_H-i-s'); |
| $filename = 'media/' . $userId . '_' . $timestamp . '_' . uniqid() . '.' . $extension; |
| |
| |
| $userMediaDir = __DIR__ . '/user-files/' . $userId . '/media/'; |
| if (!is_dir($userMediaDir)) { |
| mkdir($userMediaDir, 0777, true); |
| } |
| |
| $localPath = $userMediaDir . basename($filename); |
| |
| if (move_uploaded_file($file['tmp_name'], $localPath)) { |
| |
| $fileContent = file_get_contents($localPath); |
| $storageManager->saveFile($filename, $fileContent); |
| |
| |
| $relativePath = 'user-files/' . $userId . '/media/' . basename($filename); |
| |
| echo json_encode([ |
| 'success' => true, |
| 'url' => $relativePath, |
| 'filename' => basename($filename), |
| 'size' => $file['size'], |
| 'type' => $file['type'], |
| 'message' => 'File uploaded successfully' |
| ]); |
| } else { |
| http_response_code(500); |
| echo json_encode([ |
| 'success' => false, |
| 'message' => 'Failed to upload file' |
| ]); |
| } |
| } else { |
| http_response_code(400); |
| echo json_encode([ |
| 'success' => false, |
| 'message' => 'No file uploaded' |
| ]); |
| } |
|
|