phpbar.de logo

Mailinglisten-Archive

[php] Zip Archiv korrupt in IE

[php] Zip Archiv korrupt in IE

Michael Borchers list at tridemail.de
Fre Mai 4 14:13:45 CEST 2007


> Hy Michael,
>
>>ich biete Zip-Dateien zum Download an, diesen enthalten z.B. PDFs. Nur
> im IE gibt es die Meldung, das Archiv sei korrupt. >Im FF läuft alles.
>>
>>Folgende Werte habe ich gesetzt:
>>
>>
>>    // required for IE, otherwise Content-disposition is ignored
>>    if(ini_get('zlib.output_compression'))
>>    {
>>     ini_set('zlib.output_compression', 'Off');
>>    }
>>
>>    header("Cache-Control: public");
>>    header("Expires: 0");
>>    header("Cache-Control: must-revalidate, post-check=0,
> pre-check=0");
>>    header("Cache-Control: private", false);        // required for
> certain
>>browsers
>>    header("Content-Type: " . $downloads_array['content_type']);
>>    header("Content-Disposition: attachment; filename=\"" .
>>basename($downloads_array['downloads_filename']) . "\"");
>>    header("Content-Transfer-Encoding: binary");
>>    header("Content-Length: " . filesize($downloads_file));
>>    readfile($downloads_file);
>
> nimm für den IE die Header wie unten, dann sollte es funzen.
> Ich kann mich da noch schwach daran erinnern, der IE hat Probleme mit
> dem Cache-control und Content-Disp. wie du es geschrieben hast.
>
> header("Cache-control: private");
> header("Content-Disposition: filename=\"" .
> basename($downloads_array['downloads_filename']) . "\"");


Diese Kombination funktioniert in allen Browsern für alle Dateien inkl. SSL:



header('Pragma: anytextexeptno-cache', true);

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Cache-Control: private", false);

header("Expires: 0");

header("Content-Type: application/octet-stream");


php::bar PHP Wiki   -   Listenarchive