false, "message" => "Invalid template ID"]); exit; } $template_id = intval($_POST['template_id']); if (!isset($_FILES['xls_file']) || $_FILES['xls_file']['error'] !== UPLOAD_ERR_OK) { echo json_encode(["success" => false, "message" => "File upload error"]); exit; } $file = $_FILES['xls_file']; $originalFilename = pathinfo($file['name'], PATHINFO_FILENAME); $extension = pathinfo($file['name'], PATHINFO_EXTENSION); // Crea il nuovo nome del file: {idtemplate}-{timestamp}-{nomeoriginale}.ext $newFilename = $template_id . "-" . time() . "-" . preg_replace("/[^a-zA-Z0-9_-]/", "", $originalFilename) . "." . $extension; $uploadDir = __DIR__ . '/xlstemplates/'; $uploadPath = $uploadDir . $newFilename; // Assicura che la cartella esista if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777, true); } // Salva il file if (!move_uploaded_file($file['tmp_name'], $uploadPath)) { echo json_encode(["success" => false, "message" => "Failed to save file"]); exit; } // Aggiorna il database con il nome del file try { $db = DBHandlerSelect::getInstance(); $pdo = $db->getConnection(); $stmt = $pdo->prepare("UPDATE excel_templates SET sample_xlsx = ? WHERE id = ?"); $stmt->execute([$newFilename, $template_id]); echo json_encode(["success" => true, "filename" => $newFilename, "filepath" => "xlstemplates/" . $newFilename]); } catch (PDOException $e) { echo json_encode(["success" => false, "message" => "Database error: " . $e->getMessage()]); }