Bonsoir,

J'ai un gros bug sous Safari et le Header.

Donc voici le souci :

Lorsqu'on clique sur une image, cela fait appel à une requête Ajax, qui envoie en get certaines données à un fichier download.php
Ce dernier fichier permet le téléchargement d'un fichier précis, donc dans lequel je définis le header :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
if (ereg(".zip",$data['url'])){$xtype="application/zip";}
elseif(ereg(".rar",$data['url'])){$xtype="application/x-rar-compressed";}
elseif(ereg(".exe",$data['url'])){$xtype="application/octet-stream";}
elseif(ereg(".gif",$data['url'])){$xtype="image/gif";}
elseif(ereg(".png",$data['url'])){$xtype="image/png";}
elseif(ereg(".jpg",$data['url'])){$xtype="image/jpeg";}
else { $xtype="application/force-download"; }
 
header("Content-Transfer-Encoding: binary");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: ".$xtype);
header("Accept-Ranges: bytes");				
header("Content-Disposition: attachment; filename=".$filename.";");
header("Content-Length: ".$filesize);
Donc, tout fonctionne parfaitement sous FF, IE et Opera : la fenêtre de téléchargement du fichier demandé apparaît bien ! par contre sous Safari, cela télécharge le fichier download.php...

J'ai cherché d'où venait le souci (content-type, content-disposition) mais toujours le même résultat à l'arrivée