[PHP] Downloadscript liefert nur null Byte Dateien

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Dark|pUM4, 22. November 2011 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 22. November 2011
    Downloadscript liefert nur null Byte Dateien

    Hallo Leute,

    habe folgendes Problem:

    PHP:
                    $dateiname  basename ( $datei );
        
                    
    header ( "Expires: 0" );
                    
    header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
                    
    header ( "Content-Type: application/force-download" );
                    
    header ( "Content-Description: File Transfer" );
                    
                    
    header ( "Content-Disposition: attachment; filename=" . $dateiname . ";" );
                    
    header ( "Content-Length: " . filesize ( $datei ));
                    
    header ( "Content-Transfer-Encoding: binary" );
        
                    @
    readfile ( $datei );
                    exit;
    Die Dateien liegen in einem anderen Ordner, dieser wird mit der Variabel $datei übergeben. zb.: /downloads/test.pdf

    Jetzt wird der Download gestartet, aber die Dateien haben alle Null Byte - habt ihr eine idee???

    Danke!
     
  2. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    probier das mal, das verwende ich zur zeit. ist nicht von mir, aber geht.
    PHP:
    $basedir  '/download/' ;
    $filename  'test.pdf' ;

    if (!
    file_exists ( $basedir . $filename )){
        die(
    'File not found' );
    }

    $data  sprintf ( "%s/%s" $basedir $filename );
    // Passenden Datentyp erzeugen.
    header ( "Content-Type: application/octet-stream" );
    // Passenden Dateinamen im Download-Requester vorgeben,
    // z. B. den Original-Dateinamen
    $save_as_name  basename ( $filename );
    header ( 'Content-Disposition: attachment; filename="' . $save_as_name . '"' );
    // Datei ausgeben.
    readfile ( $data );
     
  3. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    danke für den code, aber irgendwie klappt das nicht ...
    bei mir kommt immer file not found, aber die datei ist vorhanden ...
     
  4. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    Liegt vll daran, dass du am Anfang des Pfades ein "/" hast.
    Das könnte eine Ursache sein.
    Ansonsten kann würde ich gerne den Pfad sehen vll hilft das.
     
  5. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    PHP:

    $homepageurl 
    'http://meinserver/cms' ;

    $basedir  $homepageurl . '/downloads/' ;
                    
    $filename  '932113.jpg' ;
                    
    $data  $basedir . $filename ;

                    
    // Passenden Datentyp erzeugen.
                    
    header ( "Content-Type: application/octet-stream" );
                    
    // Passenden Dateinamen im Download-Requester vorgeben,
                    // z. B. den Original-Dateinamen
                    
    $save_as_name  basename ( $filename );
                    
    header ( 'Content-Disposition: attachment; filename="' . $save_as_name . '"' );
                    
    // Datei ausgeben.
                    
    readfile ( $data );
    habe das sprintf() weggemacht, da ich ja keinen Slash brauche
     
  6. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    Schonmal die Datei-Rechte gecheckt?
    (Sollte eigtl nur wichtig sein, wenn du Linux nutzt)
    Kannst du auf die Datei direkt zugreifen?
    Also:
    http://meinserver/cms/downloads/932113.jpg ?

    Wenn nicht solltes du mal checken ob der Ordner downloads die richtigen Rechte hat (zB. 755) und die Datei sollte zumindest 644 haben..

    MfG
     
  7. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    ja hatte ich auch schon vermutet, leider geht das alles

    also ich kann direkt zugreifen und die rechte sind alle IO (datei 644 / ordner 755)
     
  8. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    Was passiert wenn du:
    PHP:
    <? php
        header
    ( 'Content-type: image/jpeg' );
        echo 
    file_get_contents ( "path/to/file.jpg" );
    ?>
    machst?

    Wird dann das Bild ausgegeben?
    Oder kriegste wieder irgendwie nen Fehler?
     
  9. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    Ein Fehler, er will auf die php datei zugreifen??? obwohl ich den Pfad zum Bild angegeben habe.
     
  10. 22. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    PHP:
    $homepageurl  'http://meinserver/cms' ;

    $basedir  $homepageurl . '/downloads/' ;
    $filename  '932113.jpg' ;
    $data  $basedir . $filename ;

    // [...]

    readfile ( $data );
    dir is klar, dass du damit die datei erst per http von deinem server runterlädst und anschließend ausgibst?

    das könnte auch dein filesize-problem erklären, denn das funktioniert nämlich bei http:// nicht
     
  11. 23. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    wenn du das download script ins root verzeichnis ablegst und $basedir mit relativen pfaden anlegst,
    sollte das ohne probleme laufen.
    PHP:
    $basedir  'downloads/' ;
    oder halt, vom verzeichnis wo das script liegt, relativ.
    PHP:
    $basedir  dirname ( __FILE__ ). '/../downloads/' ;
    denk daran wie deine url aussehen würde
    v1 download.php
    v2 cms/download.php

    v1 würde mir besser gefallen
    v2 würde sich glaub ich per htaccess wie v1 korrigieren lassen
     
  12. 24. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    versuch ich gleich mal ... aber hatte ich auch schon relativ das wollte er nicht,
    aber ich verusche es erneut!
     
  13. 24. November 2011
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Downloadscript liefert nur null Byte Dateien

    hier, läuft
    No File | xup.in
     
  14. 25. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    many thanks

    oO hmm wars wohl die url!??!!!! aber wozu brauch is

    $data = sprintf("%s/%s", $basedir, $filename);

    Weil ich habe ja einen Slash


    BW's sind an alle raus
     
  15. 25. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    guck mal, hab die seite gefunden, woher ich das hab:
    http://www.php-faq.de/q-datei-download.html?pop=1&tmpl=component
     
  16. 26. November 2011
    AW: Downloadscript liefert nur null Byte Dateien

    nochmals danke!
     
  17. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.