Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,100

    proteggere files da download

    ciao!
    devo creare una sezione ad accesso riservato per il download di alcuni files .pdf da un sito che sto gestendo
    so come creare una pagina php protetta da password (con user e pswd differenti per i vari utenti), però vorrei proteggere i files dal download
    mi spiego meglio: la pagina protetta in php dovrà avere dei links ai .pdf da scaricare, che ovviamente avranno un loro indirizzo http (es: http://www.miosito.it/file.pdf); è possibile "proteggere" i files, in modo che possano essere scaricati solo se si clicca sul link nella pagina protetta, evitando quindi che il file possa essere "visto" semplicemente indirizzando il browser sull'indirizzo del file?
    :master:

    spero di essere stato abbastanza chiaro...
    ufino

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,100
    UP!
    :master:
    ufino

  3. #3
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,114
    UPPO anch'io!

  4. #4
    Devi probabilmente usare un piccolo wrapper...cioè...anzichè linkare al pd, linky a una pagina di download, che prende il pdf relativo, lo "apre" e lo "sputa fuori" tramite header...
    Qualcosa del genere, insomma (bada che mancano delle dichiarazioni, quelle per i MIME....)

    Codice PHP:

    function download_pdf($download_name$file_name){
            if (!
    file_exists("{$_SERVER['DOCUMENT_ROOT']}/{$file_name}")) {
                
    // Errore...a scelta echo "Errore", print("errore") ecc ecc
            
    }
            
    force_download($download_namefile_get_contents("{$_SERVER['DOCUMENT_ROOT']}/{$file_name}"));
    }

    function 
    force_download($filename ''$data '')
        {
            if (
    $filename == '' OR $data == '')
            {
                return 
    FALSE;
            }

            
    // Try to determine if the filename includes a file extension.
            // We need it in order to set the MIME type
            
    if (FALSE === strpos($filename'.'))
            {
                return 
    FALSE;
            }

            
    // Grab the file extension
            
    $x explode('.'$filename);
            
    $extension end($x);

            
    // Load the mime types
            
    if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'))
            {
                include(
    APPPATH.'config/'.ENVIRONMENT.'/mimes.php');
            }
            elseif (
    is_file(APPPATH.'config/mimes.php'))
            {
                include(
    APPPATH.'config/mimes.php');
            }

            
    // Set a default mime if we can't find it
            
    if ( ! isset($mimes[$extension]))
            {
                
    $mime 'application/octet-stream';
            }
            else
            {
                
    $mime = (is_array($mimes[$extension])) ? $mimes[$extension][0] : $mimes[$extension];
            }

            
    // Generate the server headers
            
    if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE") !== FALSE)
            {
                
    header('Content-Type: "'.$mime.'"');
                
    header('Content-Disposition: attachment; filename="'.$filename.'"');
                
    header('Expires: 0');
                
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                
    header("Content-Transfer-Encoding: binary");
                
    header('Pragma: public');
                
    header("Content-Length: ".strlen($data));
            }
            else
            {
                
    header('Content-Type: "'.$mime.'"');
                
    header('Content-Disposition: attachment; filename="'.$filename.'"');
                
    header("Content-Transfer-Encoding: binary");
                
    header('Expires: 0');
                
    header('Pragma: no-cache');
                
    header("Content-Length: ".strlen($data));
            }

            exit(
    $data);
        } 

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.