94 lines
4.2 KiB
PHP

<?php include('include/headscript.php'); ?>
<?php
// Assicurati di avere PhpSpreadsheet installato e includi l'autoloader di Composer
require '../../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Controlla se il file è stato caricato
if (isset($_FILES['file']) && $_FILES['file']['error'] == 0) {
// Dettagli del file
$originalFileName = $_FILES['file']['name'];
$fileTmpName = $_FILES['file']['tmp_name'];
// Genera un timestamp per creare un nome univoco
$timestamp = time();
$fileExtension = pathinfo($originalFileName, PATHINFO_EXTENSION); // Ottieni l'estensione del file
$newFileName = $timestamp . '_' . pathinfo($originalFileName, PATHINFO_FILENAME) . '.' . $fileExtension; // Nome file rinominato
$fileDestination = 'xlsupload/' . $newFileName;
// Muovi il file caricato nella cartella di destinazione con il nuovo nome
if (move_uploaded_file($fileTmpName, $fileDestination)) {
// Leggi il file XLS utilizzando PhpSpreadsheet
try {
$spreadsheet = IOFactory::load($fileDestination);
$worksheet = $spreadsheet->getActiveSheet();
$rows = $worksheet->toArray();
// Variabili di sistema
$uniquecode = $timestamp; // Usa il timestamp come codice unico
$dateimport = date('Y-m-d H:i:s'); // Data e ora correnti
$iduserlogin = $_SESSION['iduserlogin']; // Ottieni l'ID dell'utente loggato
$conn = new mysqli($servername, $username, $password, $database);
// Inserisci i dati nel database hist_rslxls per tracciare l'importazione
$stmtHist = $conn->prepare("INSERT INTO hist_rslxls (importfilename, uniquecode, dateimport, iduser) VALUES (?, ?, ?, ?)");
$stmtHist->bind_param('sssi', $newFileName, $uniquecode, $dateimport, $iduserlogin);
if (!$stmtHist->execute()) {
die('Errore nell\'inserimento della cronologia: ' . $stmtHist->error);
}
// Itera su ciascuna riga e inseriscila nel database rslxls
foreach ($rows as $key => $row) {
// Salta la prima riga se è un'intestazione
if ($key == 0) continue;
// Prepara la query SQL per la tabella rslxls
$stmt = $conn->prepare("INSERT INTO rslxls (importfilename, uniquecode, dateimport, scope, material_category, material_subcategory, finished_product, age, parameter_family, parameter, cas, unit_of_measure, minimum_limit, test_method, country, additional_requirement_note) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
// Bind dei valori (aggiungendo il nome del file, l'uniquecode e la data di importazione)
$stmt->bind_param(
'ssssssssssssssss',
$newFileName, // Usa il nuovo nome del file
$uniquecode,
$dateimport,
$row[0],
$row[1],
$row[2],
$row[3],
$row[4],
$row[5],
$row[6],
$row[7],
$row[8],
$row[9],
$row[10],
$row[11],
$row[12]
);
// Esegui la query
if (!$stmt->execute()) {
die('Errore nell\'inserimento dei dati: ' . $stmt->error);
}
}
// Reindirizza l'utente alla pagina xlstorsl.php dopo l'importazione
header("Location: xlstorsl.php");
exit();
} catch (Exception $e) {
die('Errore nell\'elaborazione del file: ' . $e->getMessage());
}
} else {
echo 'Errore nel caricamento del file.';
}
} else {
echo 'Nessun file selezionato o errore nel caricamento.';
}
}
?>