zibo-dashboard/public/userarea/upload_photo.php
2025-11-22 13:35:12 +01:00

53 lines
1.4 KiB
PHP

<?php
header('Content-Type: application/json');
require_once __DIR__ . '/class/db-functions.php';
try {
$db = DBHandlerSelect::getInstance();
$pdo = $db->getConnection();
if (empty($_POST['production_id']) || empty($_POST['photo_type'])) {
throw new Exception("Dati mancanti");
}
$production_id = (int)$_POST['production_id'];
$type = $_POST['photo_type'];
if (!isset($_FILES['photo'])) {
throw new Exception("Nessuna foto caricata");
}
// Estensione
$ext = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION);
$ext = strtolower($ext ?: "jpg");
// Inserimento record DB
$stmt = $pdo->prepare("
INSERT INTO production_photos (production_id, photo_type, filename)
VALUES (?, ?, '')
");
$stmt->execute([$production_id, $type]);
$photo_id = $pdo->lastInsertId();
$timestamp = time();
$filename = "{$production_id}-{$photo_id}-{$timestamp}.{$ext}";
$filepath = __DIR__ . "/photos/" . $filename;
if (!move_uploaded_file($_FILES['photo']['tmp_name'], $filepath)) {
throw new Exception("Errore salvataggio file");
}
// aggiorna filename completo
$pdo->prepare("
UPDATE production_photos SET filename = ? WHERE id = ?
")->execute([$filename, $photo_id]);
echo json_encode(["success" => true]);
} catch (Exception $e) {
echo json_encode([
"success" => false,
"message" => $e->getMessage()
]);
}