Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 23.11.2009, 11:48
Benutzerbild von Boris
Boris Boris ist offline
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.417
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Boris eine Nachricht über ICQ schicken Boris eine Nachricht über MSN schicken Boris eine Nachricht über Skype™ schicken
Standard

Sowas solltest du nicht mit einem simplen readfile() machen, das zieht die ganze Serverperformance runter, weil der Server versucht die Datei "in einem Stück" zu übergeben.

Nimm das:
PHP-Code:
function sendFileToBrowser($filelocation NULL$filename NULL$org_filename ''$ctype 'application/octet-stream'$download FALSE){
/*
    =============================================================================
    @desc:        Sendet eine Datei zum Herunterladen an den Browser
    @version:    Tue, 30 Sep 2008 17:33:55 +0200
    @changed:    Erweitert um Angabe für den "richtigen" Dateinamen
    =============================================================================
*/
    // Kein Originalname übergeben? Dann nehmen wir den Dateinamen
    
if($org_filename == ''){
        
$org_filename $filename;
    }

    
// Soll die Datei zum Download angeboten werden?
    
if($download === TRUE){
        
header('Pragma: public');
        
header('Expires: 0');
        
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        
header('Content-Transfer-Encoding: binary');
        
header('Content-Disposition: attachment; filename=' $org_filename ';');    
    }

    
header('Content-Type: ' $ctype);
    
header('Content-Length: ' filesize($filelocation $filename));
    
//    readfile($filelocation . $filename);

    
$file fopen($filelocation $filename"r");

    while(!
feof($file) and (connection_status()==0)) {
        print(
fread($file1024*8));
        
flush();
    }
    
fclose($file);
    
    die();

Sollte eigentlich selbsterklärend sein
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
Sponsored Links