trf_certest/public/userarea/upload_xls_example.php
2025-03-08 08:34:00 +01:00

49 lines
1.7 KiB
PHP

<?php
require_once(__DIR__ . '/class/db-functions.php');
header('Content-Type: application/json');
if (!isset($_POST['template_id']) || !is_numeric($_POST['template_id'])) {
echo json_encode(["success" => 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()]);
}