• User

    Classe per elencare ed aprire file contenuti in un archivio zip

    Ciao a tutti.
    Di recente ho aggiunto al mio portale** sharetext (sharetext.altervista.org) la possibilità di allegare ai testi caricati file ZIP.
    Ora mi piacerebbe fare in modo che l'utente (ospite o registrato) possa scegliere se scaricare l'archivio oppure aprirlo online, visualizzando i file in esso contenuto e poterli aprire.
    Esiste una funzione che fa questo? Possibilmente senza tanti inutili fronzoli (come il flash) e, soprattutto, Open Source (Sharetext è software libero)...

    Ah, un'ultima cosa: non deve essere possibile aprire file .php, ovviamente!!! 😮

    Nel caso questa funzione non esistesse e qualcuno volesse crearla sarebbe ben accetto a diventare collaboratore di Sharetext 😉

    Grazie mille!:):ciauz:


  • Super User

    Non so se altervista ha l'estensione zip installata, nel caso puoi usare la libreria stessa:

    php.net/manual/en/book.zip.php

    Nel caso in cui non abbia l'estensione installata, puoi contare su PclZip, una classe standalone, di cui ho sentito parlare piuttosto bene. Facci un giro.

    phpconcept.net/pclzip/


  • User

    Grazie, ma ho dei problemi:
    vorrei fare in modo che, oltre ad elencare i file contenuti nell'archivio (cosa che ho fatto molto facilmente grazie al suggerimento di PaTer), possa anche visualizzarli.
    Purtroppo usando la funzione GetFromIndex() ho dei problemi:

    1. Se provo ad aprire file binari o file di testo troppo lunghi la funzione non resituisce niente
    2. Come fare in modo di evitare l'esecuzione di codice PHP?
    3. Se riuscissi ad aprire un file binario, esso verrebbe visualizzato oppure scaricato?
    4. Se aprisse un file binario riconosciuto dal browser (ex PDF), verrebbe visualizzato bene, visualizzato come testo o scaricato?
    5. Google indicizzerebbe eventuali PDF, ODT, DOC...?

    A questo punto (dopo aver risolto i punti 1 e 2), mi consigliereste di procedere (non so come) ad un sistema che visualizza il file se visualizzabili da browser o scarica i file se non visualizzabili direttamente oppure ad un download forzato del file (scavalcando il punto 2)... ma in questo modo il punto 5 sarebbe possibile?

    Grazie.