41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
require_once __DIR__ . '/../db/config.php';
|
|
|
|
$data = json_decode(file_get_contents('php://input'), true);
|
|
|
|
if (!$data || empty($data['image'])) {
|
|
echo json_encode(['success' => 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()]);
|
|
}
|