Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909

    negare la possibilità di scaricare file php

    Ciao a tutti,
    mi trovo davanti ad un insolito problema:
    utilizzo uno script per forzare il download dei file pdf (insomma evito di farli aprire dal browser, obbligando a scaricare il file
    codice:
    <?
    function forceDownload(&$file){
         
    	if( file_exists($file) == true && is_readable($file) == true) {
    		$filename = &basename($file);
    		if( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
    			$parsename = &explode( '.', $filename );
    			$last = count($parsename) - 1;
    			$filename = &implode('%2E', array_slice($parsename, 0, $last));
    			$filename .= '.'.$parsename[$last];
    		}
    		$content = &file_get_contents($file);
    		header('Content-Type: application/octet-stream');
    		header('Content-Disposition: attachment; filename="'.$filename.'"');
    		header('Content-Length:'.strlen($content));
    		header('Content-Transfer-Encoding: binary');
    		echo $content;
    		exit(0);
    
    	}
    }
    $myFile=$_REQUEST['fileToDownload'];
    forceDownload($myFile);
    ?>
    la cosa insolita è che se punto ad un file.php riesco a scaricarlo tranquilamente!! VVoVe:

    Dove posso specificare le estenzioni per le quali è consentita la forzatura del download?

    grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    up pls

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    ok grazie lo stesso ho risolto così:
    codice:
    <?
    function forceDownload(&$file){
         
    	if( file_exists($file) == true && is_readable($file) == true) {
    		$filename = &basename($file);
    		if( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
    			$parsename = &explode( '.', $filename );
    			$last = count($parsename) - 1;
    			$filename = &implode('%2E', array_slice($parsename, 0, $last));
    			$filename .= '.'.$parsename[$last];
                          
    		}
    		$content = &file_get_contents($file);
    
    
    
    
    If($filename.='.'.php){
    header("Location:index.php");                                    //oppure un echo"error"
    exit;
    }
    
    
    
    
    
    
    		header('Content-Type: application/octet-stream');
    		header('Content-Disposition: attachment; filename="'.$filename.'"');
    		header('Content-Length:'.strlen($content));
    		header('Content-Transfer-Encoding: binary');
    		echo $content;
    		exit(0);
    
    	}
    }
    
    $myFile=$_REQUEST['fileToDownload'];
    forceDownload($myFile);
    ?>

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    nello script precedente c'è un errore,
    così funziona:
    codice:
    <?
    function forceDownload(&$file){
    	if( file_exists($file) == true && is_readable($file) == true) {
    		$filename = &basename($file);
    		if( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
    			$parsename = &explode( '.', $filename );
    			$last = count($parsename) - 1;
    			$filename = &implode('%2E', array_slice($parsename, 0, $last));
    			$filename .= '.'.$parsename[$last];
                          $php .= '.'.$parsename[$last];
    If($php ==".php"){                        //
    $refe=$_SERVER['HTTP_REFERER'];  //se è un file.php rimanda alla pagina precedente
    header("Location:$refe");              //
    exit;
    }
    		}
    		$content = &file_get_contents($file);
                              header('Content-Type: application/octet-stream');
    		header('Content-Disposition: attachment; filename="'.$filename.'"');
                  	header('Content-Length:'.strlen($content));
    		header('Content-Transfer-Encoding: binary');
    		echo $content;
    		exit(0);
    	}
    }
    $myFile=$_REQUEST['fileToDownload'];
    forceDownload($myFile);
    ?>

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.