false, 'error' => 'No image data provided']); exit; } try { $img_data = $data['image']; $img_data = str_replace('data:image/png;base64,', '', $img_data); $img_data = str_replace(' ', '+', $img_data); $decoded_data = base64_decode($img_data); $filename = 'assets/images/pexels/edited_' . md5(uniqid()) . '.png'; $target = __DIR__ . '/../' . $filename; if (!is_dir(__DIR__ . '/../assets/images/pexels/')) { mkdir(__DIR__ . '/../assets/images/pexels/', 0775, true); } if (file_put_contents($target, $decoded_data)) { // Save to database $stmt = db()->prepare("INSERT INTO media_history (type, prompt, result_url) VALUES (?, ?, ?)"); $stmt->execute(['photo', 'Edited in Nano Editor', $filename]); echo json_encode([ 'success' => true, 'url' => $filename, 'message' => 'Сохранено в галерее!' ]); } else { echo json_encode(['success' => false, 'error' => 'Failed to save image file']); } } catch (Exception $e) { echo json_encode(['success' => false, 'error' => $e->getMessage()]); }