salut,
Voila ce qu'il ce passe dans le cas ou je vais chercher sur le deuxième serveur, il crée un fichier vide du nom indiqué, le contenu est donc oublier, j'en déduis qu'il n'est pas ouvert. Lorsque le document est télécharger à partir du meme serveur que l'endroit ou est le site le fichier est complet avec son contenu.
Je n'ai pas de message d'erreur.
Voici le code des fonction réaliser en php mise dans une page nommée essai.php
<?php
//Pour télécharger les fichiers
function typeMime($nomFichier)
/* retourne le type MIME à partir de l'extension de fichier contenu dans $nomFichier
Exemple : $nomFichier = "fichier.pdf" => type renvoyé : "application/pdf" */
{
// on détecte d'abord le navigateur, ça nous servira plus tard
if(preg_match("@Opera(/| )([0-9].[0-9]{1,2})@", $_SERVER['HTTP_USER_AGENT'], $resultats))
$navigateur="Opera";
else if(preg_match("@MSIE ([0-9].[0-9]{1,2})@", $_SERVER['HTTP_USER_AGENT'], $resultats))
$navigateur="Internet Explorer";
else $navigateur="Mozilla";
// on récupère la liste des extensions de fichiers et leurs types Mime associés
$mime=parse_ini_file("mime.ini");
$extension=substr($nomFichier, strrpos($nomFichier, ".")+1);
/* on affecte le type Mime si on a trouvé l'extension sinon le type par défaut (un flux d'octets).
Attention : Internet Explorer et Opera ne supporte pas le type MIME standard */
if(array_key_exists($extension, $mime)) $type=$mime[$extension];
else $type=($navigateur!="Mozilla") ? 'application/octetstream' : 'application/octet-stream';
return $type;
}
/**
* Télécharge le contenu d'un fichier sur le client de l'internaute, avec le nom spécifié.
*
* @param string $contenuFichier Le contenu du fichier à télécharger
* (obtenu avec file_get_contents() par exemple).
* @param string $nomFichier Nom du fichier qui sera proposé par défaut à l'internaute.
*/
function telechargerFichier($contenuFichier, $nomFichier)
{
// on détermine le type MIME du fichier
$typeFichier=typeMime($nomFichier);
// envoi des en-têtes nécessaires au navigateur
header('Content-Type: '.$typeFichier);
header('Content-Disposition: attachment; filename="'.$nomFichier.'"');
// il ne reste plus qu'à envoyer le contenu du fichier
echo $contenuFichier;
}
$nom = $_GET['doc'];
telechargerFichier(file_get_contents($nom), $nom);
?>
Contenu du fichier mime.ini
[microsoft]
doc = application/msword
rtf = application/msword
xls = application/excel
pps = application/vnd.ms-powerpoint
ppt = application/vnd.ms-powerpoint
[adobe]
pdf = application/pdf
ai = application/postscript
eps = application/postscript
psd = image/psd
Le passage de paramètre ce fait de la facon suivante
<a href="essai.php?doc=serveur\g---drhu\demande de stage.xls">test</a>