Content-Disposition: attachment

Content-Disposition: attachment - PHP - Programmation

Marsh Posté le 12-05-2004 à 13:28:29    

Salut à tous,
 
Le script suivant me permet de télécharger des photos depuis une photothèque. Petit problème de compatibilité cependant avec certaines version d'IE, même IE6.
J'ai déjà fait plusieurs tests, mais là je bloque un peu...
Auriez-vous quelques pistes qui pourrait m'aider ?
 
Merci
 
<?  
$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);  
$requete=mysql_db_query($sql_bdd,"SELECT fichier72, fichier300, diffusion from extrait where id=\"$id\"",$db_link);  
$laReq=mysql_fetch_array($requete);  
 
if($typ=="300" ){  
$filename = "../admin/photo300/$laReq[1]";  
//echo $filename;  
}else{  
$filename = "../admin/photo72/$laReq[0]";  
//echo $filename;  
}  
 
$ext = substr( $filename,-3 );  
if( $filename == "" ) {  
   echo "<html><body>ERROR: Empty file to download. USE download.php?file=[file path]</body></html>";  
   exit;  
} elseif ( ! file_exists( $filename ) ) {  
   echo "<html><body>Erreur: Le fichier que vous souhaitez télécharger n'a pas été trouvé. Veuillez contacter l'administrateur du site.</body></html>";  
   exit;  
};  
switch( $ext ){  
   case "pdf": $ctype="application/pdf";              break;  
   case "exe": $ctype="application/octet-stream";      break;  
   case "zip": $ctype="application/zip";              break;  
   case "doc": $ctype="application/msword";            break;  
   case "xls": $ctype="application/vnd.ms-excel";      break;  
   case "ppt": $ctype="application/vnd.ms-powerpoint"; break;  
   case "gif": $ctype="image/gif";                    break;  
   case "png": $ctype="image/png";                    break;  
   case "jpg": $ctype="image/jpg";                    break;  
   default:    $ctype="application/force-download";  
}  
 
 
header("Pragma: public" );  
header("Expires: 0" );  
header("Cache-Control: must-revalidate, post-check=0, pre-check=0" );  
header("Content-Type: $ctype" );  
$user_agent = strtolower ($_SERVER["HTTP_USER_AGENT"]);  
if ((is_integer (strpos($user_agent, "msie" ))) && (is_integer (strpos($user_agent, "win" )))) {  
   header( "Content-Disposition: filename=".basename($filename).";" );  
} else {  
   header( "Content-Disposition: attachment; filename=basename($filename);" );  
}  
header("Content-Transfer-Encoding: binary" );  
header("Content-Length: ".filesize($filename));  
readfile("$filename" );}  
exit();  
?> :jap:

Reply

Marsh Posté le 12-05-2004 à 13:28:29   

Reply

Marsh Posté le 12-05-2004 à 20:56:48    

rajoutes ça : header("Content-Type: application/force-download" );  

Reply

Marsh Posté le 13-05-2004 à 09:40:07    

Merci misterpinguin,
 
Cependant superzut, j'ai un version d'IE 6.0.2600.0000 et lorsque je teste le script, il ne me propose pas la fenêtre de téléchargement, il me met simplement une page blanche avec une croix en haut à gauche.
 
 
 

Reply

Marsh Posté le 13-05-2004 à 10:24:00    

Ksmnote a écrit :

Merci misterpinguin,
 
Cependant superzut, j'ai un version d'IE 6.0.2600.0000 et lorsque je teste le script, il ne me propose pas la fenêtre de téléchargement, il me met simplement une page blanche avec une croix en haut à gauche.


ça veut dire qu'il cherche une image qu'il ne trouve pas

Reply

Marsh Posté le 14-05-2004 à 10:02:36    

????
Alors c'est très bizarre...
Ca marche en I5.5 puis en IE6 dernière version mais par en IE6 première version.
 
Si je suis le raisonnement de misterpinguin, c'est donc le fichier qui n'est pas trouvé.
Comment c'est possible que dans un cas il trouve la photo dans l'autre non ???

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed