PHP-Download-Script zerhaut Dateien

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-Download-Script zerhaut Dateien

    Hallo zusammen

    Ich möchte auf einer Webseite PDF- und TXT-Dokumente zum Download anbieten. Damit die Dateien nicht direkt im Browser geöffnet, sondern der "Speichern unter"-Dialog angezeigt wird, habe ich folgendes kleines Script erstellt:
    PHP-Code:
    $dateiname $_POST['dateiname'];
    $type $_POST['type'];
    $pfad $_POST['pfad'];

    switch(
    $type) {
        case 
    "pdf":    header('Content-type: application/pdf');
                    
    header('Content-Disposition: attachment; filename="'.$dateiname.'.pdf"');
                    
    //header('Content-Disposition: attachment; filename="Leitkarten.pdf"');
                    //readfile($pfad);
                    
    $fp fopen($pfad,"rb");
                    if (
    $fp) {
                        while (!
    feof($fp)) {
                            
    $buffer fgets($fp128000);
                            echo 
    $buffer;
                            }
                        
    fclose($fp);
                        }
                    exit();
                break;
        case 
    "txt"header('Content-type: application/txt');
                    
    header('Content-Disposition: attachment; filename="'.$dateiname.'.txt"');
                    
    //header('Content-Disposition: attachment; filename="UPDPRE.txt"');
                    //header("Content-Transfer-Encoding:_ binary"); 
                    //readfile($pfad);
                    
    $fp fopen($pfad,"rb");
                    if (
    $fp) {
                        while (!
    feof($fp)) {
                            
    $buffer fgets($fp128000);
                            echo 
    $buffer;
                            }
                        
    fclose($fp);
                        }
                    exit();


    Ich habs zuerst mir readfile() probiert, aber wenn ich das TXT runterlade, bekomme ich zwar eine Datei, aber anstatt des effektiven Inhalts, steht folgendes drin:
    <br />
    <b>Warning</b>: fopen(/tricoder/ZPR655_Files/163/artsta/16320090114110053.txt) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in <b>E:\wwwroot\www.lvtime.ch\tricoder\ZPR655_Files\download.php</b> on line <b>26</b><br />


    Beim PDF kommen anstelle 380kb nur 285kb auf der Festplatte an.

    Die jetzt im Script aktive Version mit fopen verhält sich gleich.


    Kann mir jemand einen Tipp geben, woran das liegen kann?

    Danke und Gruss
    Philipp

  • #2
    Fehler gefunden.

    Ich hatte in der Variabl $_POST['pfad'] den Pfad folgendermassen angegeben: '/tricoder/ZPR655_Files/'. $_SESSION['KDNR'] .'/artsta/'. $dateiname .'.txt'

    hätte aber: $_SERVER['DOCUMENT_ROOT'].'tricoder/ZPR655_Files/'. $_SESSION['KDNR'] .'/artsta/'. $dateiname .'.txt'

    mitgeben sollen.


    Gruss
    Philipp

    Kommentar

    Lädt...
    X