PHP-Download-Script zerhaut Dateien

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment

    Working...
    X