Tengo este código PHP para importar Excel a MySQL usando PhpSpreadsheet en xampp. Este código está bien cuando se ejecuta en un entorno Windows, pero si lo alojé en un servidor Linux (Ubuntu 22.04) usando XAMPP Linux apareció el error "HTTP ERROR 500". Instalé todos los paquetes y extensiones necesarios para PhpSpreadsheet según la documentación de phpspreadsheet.readthedocs.io. Si este error es del lado del servidor ¿qué debo hacer? Por favor ayuda
Estos son mis códigos para mi archivo de importación.
compositor.json
{
"name": "mark/import1",
"autoload": {
"psr-4": {
"Mark\\Import1\\": "src/"
}
},
"authors": [
{
"name": "mark"
}
],
"require": {
"phpoffice/phpspreadsheet": "^1.28"
},
"config": {
"platform": {
"php": "8.1"
}
}
}
código de importación
<?php
$con = mysqli_connect('localhost','root','','db_import');
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
if(isset($_POST['save_excel_data']))
{
$fileName = $_FILES['import_file']['name'];
$file_ext = pathinfo($fileName, PATHINFO_EXTENSION);
$allowed_ext = ['xls','csv','xlsx'];
if(in_array($file_ext, $allowed_ext))
{
$inputFileNamePath = $_FILES['import_file']['tmp_name'];
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileNamePath);
$data = $spreadsheet->getActiveSheet()->toArray();
foreach($data as $row)
{
$fullname = $row['0'];
$email = $row['1'];
$phone = $row['2'];
$course = $row['3'];
$studentQuery = "INSERT INTO students (fullname,email,phone,course)
VALUES('$fullname','$email','$phone','$course')";
$result = mysqli_query($con, $studentQuery);
$msg = true;
}
}
}