Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Forzare un Download

  1. #1
    Utente di HTML.it L'avatar di pariri
    Registrato dal
    Jul 2003
    Messaggi
    1,470

    Forzare un Download

    Ciao!

    Ho trovato questo codice:
    Codice PHP:
    <?php
    // definisco una variabile con il percorso alla cartella
    // in cui sono archiviati i file
    $dir "/root/www/mp3/";
     
    // Recupero il nome del file dalla querystring
    // e lo accodo al percorso della cartella del download
    $file $dir $_GET['filename'];
     
    // verifico che il file esista
    if(!file)
    {
    // se non esiste chiudo e stampo un errore
    die("Il file non esiste!");
    }else{
    // Se il file esiste...
    // Imposto gli header della pagina per forzare il download del file
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename= " $file);
    header("Content-Transfer-Encoding: binary");
    // Leggo il contenuto del file
    readfile($file);
    }
    ?>
    e poi faccio così:
    download
    però non funziona!
    Dove sbaglio?

    Grazie mille!
    La vita è un percorso, goditi il viaggio.

  2. #2
    Ciao,
    comprendo le tue intenzioni, ma f(!file) dubito dia il risultato da te sperato...
    Codice PHP:
    if ( !file_exists($file) ) 
    Altra cosa:
    Codice PHP:
    header("Content-Disposition: attachment; filename= " $file); 
    La tua variabile $file contene tutto il percorso, non il solo nome del file.
    Codice PHP:
    header("Content-Disposition: attachment; filename= " basename($file)); 
    Mancano altri dati come
    Content-Type e Content-Length
    ma in questo momento non ricordo se siano indispensabili.

    Alessandro
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  3. #3
    Utente di HTML.it L'avatar di pariri
    Registrato dal
    Jul 2003
    Messaggi
    1,470
    Grazie del tuo aiuto ma ho trovato questo codice già pronto... purtroppo non conosco php!

    Cosa faccio?

    Grazie ancora!
    La vita è un percorso, goditi il viaggio.

  4. #4
    Utente di HTML.it L'avatar di pariri
    Registrato dal
    Jul 2003
    Messaggi
    1,470
    Ok... ho trovato questo codice qui e funziona bene!

    Codice PHP:
    <?php
    function forceDownload($file) {
        if(
    file_exists($file) && is_readable($file)) {
            
    $filename basename($file);
            if(
    strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), 'MSIE') !== false && strpos($filename'.') !== false) {
                
    $parsename explode('.'$filename);
                
    $last count($parsename) - 1;
                
    $filename implode('%2E'array_slice($parsename0$last));
                
    $filename .= '.'.$parsename[$last];
            }
            
    header('Content-Type: application/octet-stream');
            
    header('Content-Disposition: attachment; filename="'.$filename.'"');
            
    header('Content-Length:'.filesize($file));
            
    header('Content-Transfer-Encoding: binary');
            if(@
    $file fopen($file"rb")) {
                while(!
    feof($file))
                    echo 
    fread($file8192);
                
    fclose($file);
            }
            exit(
    0);
        }
    }

    if (isset(
    $_GET['file']))
    {
        
    forceDownload($_GET['file']);
    }

    ?>
    Grazie!
    La vita è un percorso, goditi il viaggio.

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.