false, 'message' => 'Method harus POST'], 405); } if (empty($_FILES['file'])) { jsonResponse(['success' => false, 'message' => 'Tidak ada file yang diupload'], 400); } $file = $_FILES['file']; $prefix = sanitize($_POST['prefix'] ?? 'upload'); $filename = handleUpload($file, $prefix); if (!$filename) { jsonResponse(['success' => false, 'message' => 'Upload gagal. Pastikan tipe file dan ukuran sesuai (maks 10MB, tipe: jpg/jpeg/png/gif/pdf/doc/docx)'], 422); } jsonResponse([ 'success' => true, 'filename' => $filename, 'url' => UPLOAD_URL . $filename, 'message' => 'File berhasil diupload', ]);