Alexander, W.: Header / ZIP / iPad Safari / Download

Hallo liebe Experten,

ich biete ZIP-Dateien zum Download an und habe dabei ein Problem. Einige Safari Nutzer (auf iPad) melden, dass sich die Dateien nicht herunterladen lassen. Ich habe es mit application/zip und application/octet-stream getestet. In beiden Fällen melden die Kunden Fehler. Kennt Ihr vielleicht einen  Trick?

So sehen die Headers aus:

header('Pragma: public');  
header('Expires: 0');  
header('Cache-Control: no-cache');  
header('Content-Description: [Hier kommt der Dateiname] Download');  
header('Content-Type: application/octet-stream'); // auch mit .../zip getestet  
header('Content-Disposition: attachment; filename=das-ist-die-datei.zip"');  
header('Content-Transfer-Encoding: binary');  
header('Content-Length:'.filesize($file));

// hier kommt readfile(...) und exit;

Vielen Dank!

Grüße
Alexander

  1. Hi,

    header('Content-Length:'.filesize($file));[/code]
    // hier kommt readfile(...) und exit;

    den Content-Length-Header würde ich mal weglassen. Denn da viele Server so konfiguriert sind, dass sie die Ausgabe noch mit gzip weiter zu komprimieren versuchen (wodurch sich die Länge des Inhalts definitiv ändert), passt das oft nicht mehr.

    Ciao,
     Martin

    --
    Die Natur ist gnädig: Wer viel verspricht, dem schenkt sie zum Ausgleich ein schlechtes Gedächtnis.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. Hello,

    ich biete ZIP-Dateien zum Download an und habe dabei ein Problem. Einige Safari Nutzer (auf iPad) melden, dass sich die Dateien nicht herunterladen lassen. Ich habe es mit application/zip und application/octet-stream getestet. In beiden Fällen melden die Kunden Fehler. Kennt Ihr vielleicht einen  Trick?

    So sehen die Headers aus:

    header('Pragma: public');

    header('Expires: 0');
    header('Cache-Control: no-cache');
    header('Content-Description: [Hier kommt der Dateiname] Download');
    header('Content-Type: application/octet-stream'); // auch mit .../zip getestet
    header('Content-Disposition: attachment; filename=das-ist-die-datei.zip"');
    header('Content-Transfer-Encoding: binary');
    header('Content-Length:'.filesize($file));

    
    > // hier kommt readfile(...) und exit;  
      
    Ich sehe nur einen Fehler:  
      
    
    > header('Content-Length:'.filesize($file));  
      
    sollte besser heißen:  
      
    header('Content-Length: '.filesize($file));  
                           ^  
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bikers-lodge.com>
    
    1. Hello,

      ich biete ZIP-Dateien zum Download an und habe dabei ein Problem. Einige Safari Nutzer (auf iPad) melden, dass sich die Dateien nicht herunterladen lassen. Ich habe es mit application/zip und application/octet-stream getestet. In beiden Fällen melden die Kunden Fehler. Kennt Ihr vielleicht einen  Trick?

      So sehen die Headers aus:

      Ich sehe nur einen Fehler:

      header('Content-Length:'.filesize($file));

      sollte besser heißen:

      header('Content-Length: '.filesize($file));
                             ^

      Und da ist noch einer:

      header('Content-Disposition: attachment; filename=das-ist-die-datei.zip"');
                                                        ^                    ^

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bikers-lodge.com
  3. In beiden Fällen melden die Kunden Fehler. Kennt Ihr vielleicht einen  Trick?

    Ja. Nachfragen was der Fehler ist.
    Wie äußert er sich? Was passiert? Wird überhaupt was runtergeladen das nur kein gültiges zip ist, passiert überhaupt nichts, usw...