Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Aiuto per utilizzo ZLIB

    Vi chiedo aiuto per risolvere questo mio problema:

    Posso utilizzare ZLIB, versione 1.2.3

    - Devo leggere l'elenco dei file in uno ZIP che contiene solo immagini
    - Devo visualizzare l'mmagine che mi interessa.

    Il tutto lo devo integrare in un'applicazione in ASP.
    Quindi pensavo a 2 routine separate.
    - La prima che mi ritorna una stringa con i nomi dei file per poi creare un array in ASP.
    - La seconda, richiamandola con nome dello zip e nome dell'immagine me la mostri su video.

    Ora io sono a -ZERO in PHP. Mi potete mostrare qualche esempio minimo che poi, con l'aiuto del manuale PHP me la adatto.

    Grazie
    Io nella vita ho visto cose che voi astemi neanche potete immaginare.

  2. #2
    per php c'è un'estensione che si chiama Zip e ti permette di gestire i file zip con estrema comodità

    qui la pagina di riferimento
    http://www.php.net/zip

    Prima apri il file zip
    http://www.php.net/manual/en/functio...chive-open.php

    Poi cicli i nomi dei file (c'è l'esempio che fa quello che ti serve)
    http://www.php.net/manual/en/functio...tnameindex.php

    Invece, per prendere il contenuto partendo dal nome del file
    http://www.php.net/manual/en/functio...etfromname.php

    Se devi fare un'integrazione ti consiglio di giocare con json perché cosi fai tutto via javascript e non hai bisogno di fare nessun'integrazione con ASP (che sarebbe anche abbastanza complicato)

    Utilizzando jQuery fai una richieste json alla pagina in php che ti restituisce un'elenco di variabili in formato json
    www.php.net/json_encode

    Json è praticamente codice javascript, ne più ne meno

    Per inviare il file poi
    www.php.net/header
    www.php.net/fopen
    www.php.net/fpassthru
    www.php.net/fclose

    Ovviamente i parametri li mandi via get, ed in questo caso sono zip, con il percorso al file zip relativo al file php, ed image, con il percorso/nome del file immagine dentro il file zip

    Codice PHP:
    <?php

    if (isset($_GET['zip']) === true)
    {
      
    // Verifica se il file esiste
      
    if (file_exists($_GET['image']) === false)
      {
        die(
    'File doesn\'t exists ' $_GET['image']);
      }
      
      
    // Verifica se è stata richiesta l'immagine
      
    if (isset($_GET['image']) === false)
      {
        
    // Prova ad aprire il file zip
        
    $zip = new ZipArchive();
        
        if (!
    $zip->open($_GET['zip'])) 
        {
          die(
    'Unable to open ' $_GET['zip']);
        }
        
        
    // Costruisce l'elenco dei file
        
    $files = array();
        for(
    $i 0$i $zip->numFiles$i++)
        {
          
    $files[] = $zip->getNameIndex($i);
        }
        
        
    // Invia l'header content-type al browser e l'elenco dei file
        
    header('Content-type: application/json');
        echo 
    json_encode($files);
      }
      else
      {
        
    // Acquisisce l'estensione e decide quale header inviare
        
    $extension strtolower(array_pop(explode('.'$_GET['image'])));
        
        switch(
    $extension)
        {
          case 
    'gif':
            
    header('Content-type: image/gif');
            break;

          case 
    'jpg':
          case 
    'jpeg':
            
    header('Content-type: image/jpeg');
            break;

          case 
    'png':
            
    header('Content-type: image/png');
            break;

          default:
            die(
    'Unsupported file format');
            break;
        }
        
        
    // Acquisisce il puntatore al contenuto del file nel file zip
        
    if (($fp fopen('zip://' $_GET['zip'] . '#' $_GET['image'], 'r')) === false)
        {
          die(
    'Unable to open zip or image file');
        }
        
        
    // Invia progressivamente il contenuto del file zip al browser
        
    fpassthru($fp);
        
    fclose($fp);
      }
    }

    ?>
    lo script non l'ho minimamente provato quindi possono esserci sia errori di sintassi sia errori logici, inoltre attualmente non viene effettuato nessun controllo sul percorso, a parte l'eventuale esistenza, quindi è MOLTO insicuro ... quello va ASSOLUTAMENTE aggiunto

  3. #3
    Grazie! Mi metto subito all'opera
    Io nella vita ho visto cose che voi astemi neanche potete immaginare.

  4. #4
    ... arieccomi!
    Non posso usare la classe ZipArchive.

    E' per questo che ho parlato di ZLIB.
    Sono su xyz hosting windows
    Io nella vita ho visto cose che voi astemi neanche potete immaginare.

  5. #5
    non si parla di hosting è vietato in maniera esplicita dal regolamento

    riguardo al tuo problema, non c'è proprio l'estensione zip (controlla con un phpinfo())?
    se non la puoi usare allora si deve per forza ripiegare su una classe che faccia il lavoro di gestire i file zip

    http://www.phpconcept.net/pclzip/index.en.php

    non l'ho mai usata, ma penso non dovrebbe essere più difficile di tanto utilizzarla ... la logica del codice non cambia: nella prima parte costruisci l'elenco dei file mentre nella seconda parte effettui l'output del file

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 © 2025 vBulletin Solutions, Inc. All rights reserved.