Visualizzazione dei risultati da 1 a 10 su 10

Discussione: download file

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085

    download file

    Ciao ..
    c'è una buon'anima chi mi sa dire come devo fare perchè mi venga richiesto, tramite la classica finestra, di salvare il file ? .. e che non mi venga invece aperto direttamente sul browser:
    (nella fattispecie i file in questione sono dei .zip, e .sql)

    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    44
    ti suggerire di usare flash actionscript3 cosi puoi mettere la tua barra progressiva e il pulsante personalizzati viene una cosa ben fatta.
    Qui trovi una spiegazione:
    clicca qui

    se ti serve aiuto chiedi


    oppure rimanendo sul php c'è quello che cerchi eccoti il sorgente
    codice:
    <?php
    
    if(isset($_GET['fileName']) && file_exists($_GET['fileName'])) 
    
    {
    	header('Content-Description: File Transfer');
    	header('Content-Type: application/octet-stream');
    	header('Content-Disposition: attachment; filename='.basename($_GET['fileName']));
    	header('Content-Transfer-Encoding: binary');
    	header('Expires: 0');
    	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    	header('Pragma: public');
    	header('Content-Length: ' . filesize($_GET['fileName']));
    	ob_clean();
    	flush();
    	readfile($_GET['fileName']);
    	unset($_GET['fileName']);
    	exit();
    }
    devi passargli tramite get una variabile "fileName" con valore il percorso del file +nomefile+estensione.
    Attento però che cosi chiunque può scaricare ciò che vuole dal tuo sito quindi per esempio potresti mettere un filtro cioè fare una lista dei file che si possono scaricare e confrontarli quando si cerca di eseguire un download oppure ci sono tanti altri metodi.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    perfetto .. grazie mille. :-)
    lo provo

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    44
    di niente

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    allora ..
    questa è la pagina php:

    codice:
    <?php
    
    session_start();
    
    $esito = 'OK';
    $err = '';
    $pos_cursore = '';
    
    // ========================================================================================
    
    //-->  Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
    $upload_dir = "caricati/";
    
    $esito = 'OK';                                                                           
    setcookie('esito', $esito);                                                              
                                                                                             
    if (isset($_POST['file']))                                                               
       {$filename         = $_POST['file'];}                                                 
    else                                                                                     
       {                                                                                     
        $filename         = '';                                                              
        $esito = 'KO' ;                                                                                                    
        $err = "File non valorizzato !!";  
        goto end;  	  	                                                                    
       }                                                                                     
                                                                                             
    if (!is_file($filename))                                                                 
       {                                                                                     
        $esito = 'KO' ;                                                                                                    
        $err = "File non trovato !!";  
        goto end;  	  	                                                                                           
       }                                                                                     
    
    // --> nome del file da salvare (si tolgono eventuali nomi delle cartelle del percorso)
    //     (es. $filename = "backup/download/Ass_20120122_22-33-08.sql")
    
          
    $len = filesize($filename);                                  // -> lunghezza file
    $filename_nome = basename($filename);                        // -> nome del file
    $ext = strtolower(substr(strrchr($filename_nome,"."),1));    // -> estensione
    
    header('Content-Description: File Transfer');                                                 
    header('Content-Type: application/octet-stream');                                             
    header('Content-Disposition: attachment; filename='.basename($filename));           
    header('Content-Transfer-Encoding: binary');                                                  
    header('Expires: 0');                                                                       
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');                          
    header('Pragma: public');                                                                     
    header('Content-Length: ' . filesize($filename));                                     
    ob_clean();                                                                                   
    flush();                                                                                    
    readfile($filename);                                                                  
    unset($filename);                                                                     
    exit();                                                                                     
    
    // ========================================================================================
    
    end:
    
    if ($esito == 'OK')
       {$err = "Download eseguito correttamente !! ";     }   
    
    ?>
    .. e questa è la pagina in rete dove provarla (scarica):

    http://www.numeroperfetto.it/File_scrittura/

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    nessuno ?! :-(

  8. #8
    Perchè quando scarichi il file é file.EXE.PHP?

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    Originariamente inviato da cris.calleo
    Perchè quando scarichi il file é file.EXE.PHP?
    non è '.EXE.PHP'
    ma '_EXE.PHP'

    non è il file che scarico, ma la pagina php che gestisce il download (in sostanza quella ho postato in chiaro)
    il file da scaricare è 'prova_download.sql'

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    certo è che quello che risulta evidente, è il fatto che la pagina richiamata per la gestione del download (download_exe.php), non torna il controllo alla pagina chiamante (index) ..

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.