94 lines
4.2 KiB
PHP
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.';
|
|
}
|
|
}
|
|
?>
|