2017-10-05 6 views
0

Je le code suivant:phpoffice PHPExcel pas du chargement du fichier

require_once "../vendor/autoload.php"; 
require_once '../vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php'; 
$target_dir = "coverImages/"; 
$target_file = $target_dir . basename($_FILES["excelfile"]["name"]); 
move_uploaded_file($_FILES["excelfile"]["tmp_name"], $target_file); 
if ($_FILES["excelfile"]["error"] > 0) 
{ 
    echo "Error: " . $_FILES["excelfile"]["error"] . "<br>"; 
} 
else 
{ 
    if (file_exists($target_file)) { 
     echo "file exists!"; 
    }else{ 
     echo "oh it does not"; 
    } 
    $objPHPExcel = PHPExcel_IOFactory::load($target_file); 
} 

Je reçois le fichier à partir d'un fichier d'entrée. Je déplace le fichier vers un emplacement sur mon serveur. Mais je ne peux pas charger le fichier une fois que je l'ai déplacé. Je vérifie que le fichier existe, mais phpoffice n'attrape pas mon fichier quand j'appelle load sur une Factory et me donne une erreur 500. Tout conseil peut m'aider, merci d'avance.

EDIT: Erreur renvoyée:

Fatal error: Uncaught Error: Class 'ZipArchive' not found in /app/vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007.php:94 Stack trace: #0 /app/vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php(268): PHPExcel_Reader_Excel2007->canRead('coverImages/Boo...') #1 /app/vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php(191): PHPExcel_IOFactory::createReaderForFile('coverImages/Boo...') #2 /app/public/upload_file.php(26): PHPExcel_IOFactory::load('coverImages/Boo...') #3 {main} thrown in /app/vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007.php on line 94

Je ne sais pas pourquoi il y a une erreur, à mon dockerfile J'appelle:

RUN apt-get update && \ 
    apt-get install -y \ 
    freetds-dev \ 
    libsybdb5 \ 
    wget \ 
    zip 

donc zip doit être installé.

+2

Avez-vous essayé de définir display_errors? https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display – Andreah

+1

Lorsque vous obtenez un 500 à partir du serveur, vous trouverez généralement quelque chose d'écrit dans les journaux du serveur qui seront identifier la cause du problème –

+0

a ajouté une modification ci-dessus, en recherchant sur l'archive zip les réponses. Merci. – tcoulson

Répondre

0
PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); 

Cette ligne de ce link et une mise à jour 1.8.1 résolu le problème.

+0

Indiquez votre propre réponse comme acceptée. –