Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    Classe PHPExcel, controllare una exception di una linea che mi produce errore quando invio un file di tipo link

    Ciao a tutti,
    dato questo codice:
    Codice PHP:
    <?php

    include_once (DIRECCION "Classes/PHPExcel.php");
    include_once (
    DIRECCION "Classes/PHPExcel/Reader/Excel2007.php");

    class 
    Controlador_excelajax extends CONTROLADORPROTOTIPO {

        public function 
    PAGINA_detalles($html) {
            
    $objReader = new PHPExcel_Reader_Excel2007();
            if (!
    array_key_exists("excelfile"$_FILES) && !array_key_exists("tmp_name"$_FILES['excelfile']) ){
                echo(
    "el fichero no existe");
                return;
            }
            
    $fichero $_FILES['excelfile']['tmp_name'];

            if (
    file_exists($fichero) && $_FILES['excelfile']['type'] == "application/octet-stream") {
                
    $objPHPExcel $objReader->load($fichero);//LINEA CHE PRODUCE L'EXCEPTION
                
    $objPHPExcel->setActiveSheetIndex(0);
                
    $a $objPHPExcel->getActiveSheet()->getCellByColumnAndRow(01)->getValue(); //columna,linea             
                
    echo($a);
            } else {
                echo(
    "el fichero no es correcto");
            }
        }

    }
    Questo codice non fa altro che leggere un file excel e estrapolare una linea e colonna determinata (più avanti leggerà tutto il file excel, ma per il momento sto testando solo il codice scritto).
    Se invio un file di tipo .url si produce un errore che vorrei controllare. Ho provato a mettere la linea che mi produce l'errore nel try catch ma il problema persiste.
    La linea incriminata è la seguente:
    Codice PHP:
    $objPHPExcel $objReader->load($fichero); 

    La exception generata, se carico un file con estensione .url:
    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Warning: ZipArchive::getFromName(): Invalid or unitialized Zip object in C:\wamp\www\Classes\PHPExcel\Reader\Excel2007.php on line 327
    Call Stack
    # Time Memory Function Location
    1 0.0004 257224 {main}( ) ..\index.php:0
    2 0.0085 930560 Distribuidor->set( ) ..\index.php:11
    3 1.0406 2172272 Distribuidor->setMetodoRender( ) ..\Class_Distribuidor.php:40
    4 1.0406 2172480 Distribuidor->llamaRender( ) ..\Class_Distribuidor.php:80
    5 1.0407 2172552 CONTROLADOR->renderAjax( ) ..\Class_Distribuidor.php:88
    6 1.0408 2173208 CONTROLADOR->llamaMetodo( ) ..\Class_CONTROLADOR.php:331
    7 1.0408 2173248 Controlador_excelajax->PAGINA_detalles( ) ..\Class_CONTROLADOR.php:367
    8 1.0432 2440704 PHPExcel_Reader_Excel2007->load( ) ..\Controlador_excelajax.php:24
    9 1.0683 5449224 PHPExcel_Reader_Excel2007->_getFromZipArchive( ) ..\Excel2007.php:364
    10 1.0689 5476768 ZipArchive->getFromName( ) ..\Excel2007.php:327

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Warning: ZipArchive::getFromName(): Invalid or unitialized Zip object in C:\wamp\www\Classes\PHPExcel\Reader\Excel2007.php on line 330
    Call Stack
    # Time Memory Function Location
    1 0.0004 257224 {main}( ) ..\index.php:0
    2 0.0085 930560 Distribuidor->set( ) ..\index.php:11
    3 1.0406 2172272 Distribuidor->setMetodoRender( ) ..\Class_Distribuidor.php:40
    4 1.0406 2172480 Distribuidor->llamaRender( ) ..\Class_Distribuidor.php:80
    5 1.0407 2172552 CONTROLADOR->renderAjax( ) ..\Class_Distribuidor.php:88
    6 1.0408 2173208 CONTROLADOR->llamaMetodo( ) ..\Class_CONTROLADOR.php:331
    7 1.0408 2173248 Controlador_excelajax->PAGINA_detalles( ) ..\Class_CONTROLADOR.php:367
    8 1.0432 2440704 PHPExcel_Reader_Excel2007->load( ) ..\Controlador_excelajax.php:24
    9 1.0683 5449224 PHPExcel_Reader_Excel2007->_getFromZipArchive( ) ..\Excel2007.php:364
    10 1.0691 5477416 ZipArchive->getFromName( ) ..\Excel2007.php:330

    Ce ne sono altre ma purtroppo il mio msg diventa troppo lungo e non me lo lascia pubblicare.

    Grazie, Roberto

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Il tuo file è di tipo .xls o .xlsx ?

    Edit.
    Non avevo letto tutto. Devi passare un file .xlsx.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Il tuo file è di tipo .xls o .xlsx ?

    Edit.
    Non avevo letto tutto. Devi passare un file .xlsx.
    Sì esatto, devo passare un file .xlsx.

    Il problema è che il mime del file .xlsx e del file .url è di entrambi:
    application/octet-stream
    E quindi l'ultimo if lo lascia passare!

    É anche vero che il sito in produzione ometterà tutti i warning, però mi piacerebbe che non si producessero anche in fase di test!

    Qualche suggerimento?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Caricare il file Excel in una cartella. Un file .xlsx non è altro che un file .zip.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Caricare il file Excel in una cartella. Un file .xlsx non è altro che un file .zip.
    Non riesco a capire, in che senso caricare il file Excel in una cartella?
    Potresti spiegarmi meglio?

    Grazie,
    Roberto

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Prova a copiare il file in una cartella del pc che esegue php poi prova ad usare il percorso + il nome del file con phpExcel.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ho provato, ma succede esattamente lo stesso problema!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.