Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    33

    download o visualizzazione di un file ?

    ciao a tutti
    ho creato una pag php che contiene questo link:
    clicca qui
    e nella stessa cartella c'è il file messaggio.eml
    se qlcn volesse vedere il file dovrebbe fare:
    pulsante dx sul link / Salva oggetto con nome ...
    e salvare il file in locale perchè altrimenti gli darebbe errore di visualizzazione.
    premesso che cambiare le impostazioni delle cartelle su pc non risolve il problema e che comunque non posso chiedere a tutti gli utenti farlo, io immaginavo esistesse un modo per fargli eseguire cmq il download del file evitando la trasformazione in file zip.

    grazie

    ciao

  2. #2
    Planet Earth is blue and there's nothing I can do

  3. #3
    Originariamente inviato da Sandro M.
    http://www.php.phoenixweb.it/funzione-download.php
    io l'avrei scritta cosi':

    Codice PHP:
    <?php
    function download ($nome$path) {
            if( 
    $fp = @fopen$path"r" ) ) {
                    
    $size filesize$path );
                    if( 
    $size ) {
                            
    $binary fread ($fp$size);
                            
    $nome stripslashes$nome );
                            if( 
    strpos$_SERVER['HTTP_USER_AGENT'], "Gecko" ) !== false ) {
                                    
    $search = Array( 'Ä''Ë''Ï''Ö''Ü''ä''ë''ï''ö''ü' );
                                    
    $replace = Array( 'A''E''I''O''U''a''e''i''o''u' );
                                    
    $nome str_replace$search$replace$nome );
                            }
                            
    header("Pragma: public");
                            
    header("Cache-control: private");
                            
    header("Expires: 0");
                            
    header("Content-type: application/RFC822");
                            
    header("Content-type: octet/stream\n");
                            
    header("Content-transfer-encoding: binary\n");
                            
    header("Content-Disposition: attachment; filename=".$nome."\n");
                            
    header("Content-Length:".$size);
                            echo 
    $binary;
                    }
                    
    fclose($fp);
            }
            exit( 
    );
    }

    // esempio
    download ("bar.gif""img/bar.gif");
    ?>
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    33
    ottimo
    grazie mille

  5. #5
    Ottimo lavoro, andr3a! Posso usarla pure io? Cercavo proprio una funzione del genere!

    Solo una domanda: la parte di codice che inizia con $_SERVER['HTTP_USER_AGENT'], "Gecko" serve per garantire la compatibilità anche con i browser più vecchi, vero?

  6. #6
    Originariamente inviato da ThePearlsMaster
    Ottimo lavoro, andr3a! Posso usarla pure io? Cercavo proprio una funzione del genere!

    Solo una domanda: la parte di codice che inizia con $_SERVER['HTTP_USER_AGENT'], "Gecko" serve per garantire la compatibilità anche con i browser più vecchi, vero?
    ad essere sincero non ho la piu' pallida idea di cosa serva, solo che avendo visto un replace su un nome forzato a strtolower e con le sole vocali accentate a ed o, ho pensato che cosi' non avesse ne forzato il nome a strtolower del file, ne avrebbe dato problemi con le altre lettere.

    Il resto sono solo ottimizzazioni sulla sicurezza e lavoro del server, il tutto basato sullo script gia' postato .

    Cmq exko sta anche su Mozilla, FireFox ed altri, quindi non direi che e' per i browsers vecchi.


    Per finire e' logico che puoi usare questa funzione





    P.S. la funzione dovrebbe usare anche "rb" al posto del solo "r" per la lettura di files binari, quindi aggiornala:

    if( $fp = @fopen( $path, "rb" ) ) {
    ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Non sono molto ferrato sull'argomento "user agent", quindi non ho idea di cosa sia "Gecko", comunque mi documenterò. Intanto mi fido e includo la funzione nella mia libreria standard per la gestione dei file, con l'aggiunta dell'ultima correzione che mi hai segnalato (giustamente è meglio aprire il file in binario per restituire correttamente il suo contenuto binario).

  8. #8
    Una domanda: ma il tipo MIME associato ad un'immagine GIF, quella che hai usato per l'esempio, non dovrebbe essere "image/gif"? Funziona anche con "octet/stream"?

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.