Visualizzazione dei risultati da 1 a 10 su 10

Visualizzazione discussione

  1. #10
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Il problema e' che non esiste iterazione con il cliente, il processo e' automatico (uso cron).
    Con cron si lancer�, ad un' ora prestabilita, il processo, mediante un url, la pagina dovr� restituire solo testo.
    Nel testo, restituito dal server web, dovra' essere contenuto, un array (in formato json) e un file zip, tutto verra' encrypted,.
    Non posso mettere dei link per il download.

    Per farti un esempio:
    codice:
    {'array':stringa_dell_array_in json,'files':stringa_del_file_compressi_in_zip}
    Il tutto viene codificato e il server restituisce solo caratteri incomprensibili.
    La pagina ricevuta viene decodificata e si estrapolano i dati.

    Il mio problema adesso e' che il metodo che utilizzo per la compressione dei file, mi 'costringe' a creare un file temporaneo su disco, e vorrei evitarlo:

    codice:
        private function getFileZip($array) {//$array contiene i nomi originali dei file da zippare
            $nomeFile = "miofile.zip";
    
            $zip = new ZipArchive();
            $indirizzo = DIREZIONE . self::UPLOAD . $nomeFile;
            //apro il file zip
            if ($zip->open($indirizzo, ZipArchive::CREATE) !== TRUE) {
                return FALSE;
                exit("Non ho potuto aprire <$indirizzo>\n");
            }
            foreach ($array as $index => $file) {
                //aggiungo il file
                $zip->addFile(DIREZIONE . self::UPLOAD . $file);
            }
            $zip->close();
            //leggo il file appena creato, il metodo getFile non fa altro che restituire il file(utilizzo file_get_contents), se esite
            $fileCaricato = $this->getFile(self::UPLOAD . $nomeFile);
            return base64_encode($fileCaricato);
        }
    In pratica creo un file dal nome
    miofile.zip

    aggiungo file per file:
    codice:
    $zip->addFile(DIREZIONE . self::UPLOAD . $file);
    Chiudo il file zip.
    Leggo il file zip e lo metto in una variabile.
    Cancello il file con unlink (questa linea di comando non e' presente nel codice postato)
    Restituisco la variabile.

    Come posso evitare di creare un file e lavorare solo in memoria?

    Grazie,
    Roberto
    Ultima modifica di robynosse; 04-10-2018 a 09:25

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.