Télécharger un fichier XML et non pas l'ouvrir dans ie

  • Auteur de la discussion ChaTTon
  • Date de début

ChaTTon

Nouveau membre
Bonjour,

J'ai créer un petit module en PHP qui permet de créer un document XML selon les infos d'une BDD, qui le place dans un répertoire temporaire du site et qui le propose au téléchargement.

Sur mon post ca marche impeccable, la fenetre s'ouvre je clic sur enregistrer sous, et hop c bon.

Mais sur le pc de mon boss, le fichier s'ouvre directement dans IE me montrant le code XML.

Question :
Sachant que je ne peux pas le transformer en .zip ou autre (mon boss est nul et il comprendra rien). Comment faire pour dire qu'il faut obligatoirement qu'il lui affiche le menu de téléchargement windows ?

C'est peut être pas due à un problème php, ni html. Je n'en sais rien. Au cas ou, j'ai changé les paramètre fichier lui demandant d'ouvrir le document XML avec excel. Pas mieux.
 

KangOl

Grand Maître
faut que tu changes les header quand tu renvois le xml au client...

Code:
<?php

function dl_file($file){

   //First, see if the file exists
   if (!is_file($file)) { die("<b>404 File not found!</b>"); }

   //Gather relevent info about file
   $len = filesize($file);
   $filename = basename($file);
   $file_extension = strtolower(substr(strrchr($filename,"."),1));

   //This will set the Content-Type to the appropriate setting for the file
   switch( $file_extension ) {
         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 "jpeg":
     case "jpg": $ctype="image/jpg"; break;
     case "mp3": $ctype="audio/mpeg"; break;
     case "wav": $ctype="audio/x-wav"; break;
     case "mpeg":
     case "mpg":
     case "mpe": $ctype="video/mpeg"; break;
     case "mov": $ctype="video/quicktime"; break;
     case "avi": $ctype="video/x-msvideo"; break;

     //The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)
     case "php":
     case "htm":
     case "html":
     case "txt": die("<b>Cannot be used for ". $file_extension ." files!</b>"); break;

     default: $ctype="application/force-download";
   }

   //Begin writing headers
   header("Pragma: public");
   header("Expires: 0");
   header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
   header("Cache-Control: public");
   header("Content-Description: File Transfer");
  
   //Use the switch-generated Content-Type
   header("Content-Type: $ctype");

   //Force the download
   $header="Content-Disposition: attachment; filename=".$filename.";";
   header($header );
   header("Content-Transfer-Encoding: binary");
   header("Content-Length: ".$len);
   @readfile($file);
   exit;
}

?>
source :

code a adapté evidemment..
 

ChaTTon

Nouveau membre
Ok merci ca marche très bien.

C'est très intéressant à savoir. :)
 
M

Membre supprimé 1

Invité
bonjour,j'aimerais savoir comment ouvrir les fichiers telecharger par emule pour les jeux ds pour pouvoirles mettres sur la r4 merci a tous
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 158
Messages
6 718 522
Membres
1 586 445
Dernier membre
FlySilvers
Partager cette page
Haut