Problème de téléchargement

[Résolu]
Signaler
Messages postés
64
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
29 février 2008
-
Messages postés
64
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
29 février 2008
-
Bonjour,
J'ai créé une petite application de gestion de courriers ARRIVEE et DEPART.
J'ai une base centrale (MySQL) sur un site principal et j'ai des petites bases sur des sites distants.
Les bases distantes permettant quand elles sont destinataires du courrier de récupérer les infos et de les intégrer dans leurs propres bases.
Un courrier est toujours accompagné d'un fichier joint en pdf.
J'ai cherché sur le web et mis en place un "force donwload" qui focntionne très bien en local.
Mon soucis est le suivant, lorsque je suis connecté sur un serveur distant et que j'essaye de télécharger un fichier du serveur central, la première feneêtre me demandant d'ouvrir ou de télécharger le fichier apparait mais en suite j'ai un message d'erreur "format error : not a pdf or corrupted".
Voici mon code :
<!-- BEGIN TEMPLATE: bbcode_code -->"downloadAR.php?filename=<?php echo $row_rsCourAR['FICJOINTDP']; ?>" ><?php echo $row_rsCourAR['FICJOINTDP']; ?>

Et celui de ma page downloadAR.php
<?php
 
// reconnait l'extension pour que le t&#1497;l&#1497;chargement
// corresponde au type de fichier afin d'&#1497;viter les erreurs de corruptions
$Fichier_a_telecharger = $_GET['filename'];
$chemin = 'http://adresse_IP/chemin_jusqu_au_dossier_contenant_les_fichiers/' ;
 
switch(strrchr(basename($Fichier_a_telecharger), ".")){
 
case".gz": $type = "application/x-gzip"; break;
case".tgz": $type = "application/x-gzip"; break;
case".zip": $type = "application/zip"; break;
case".pdf": $type = "application/pdf"; break;
case".png": $type = "image/png"; break;
case".gif": $type = "image/gif"; break;
case".jpg": $type = "image/jpeg"; break;
case".txt": $type = "text/plain"; break;
case".htm": $type = "text/html"; break;
case".html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;
 
}
 
header("Content-disposition: attachment; filename=$Fichier_a_telecharger"); 
header("Content-Type: application/force-download"); 
header("Content-Transfer-Encoding: $type\n"); // ne pas enlever le \n
header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger)); 
header("Pragma: no-cache"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
header("Expires: 0"); 
readfile($chemin . $Fichier_a_telecharger); 
?>

Si quelqu'un avait une idée, merci d'avance.
 <!-- END TEMPLATE: bbcode_code --> <!-- END TEMPLATE: bbcode_code -->

2 réponses

Messages postés
64
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
29 février 2008

Bon et bien à force de faire des essais j'ai trouvé la solution.
Il faut appeler la page donwloasAR.php se trouvant sur le serveur distant et non celle se trouvant dans l'appilcation locale.
 
"http://adresseIP/downloadAR.php?filename=<?php echo $row_rsCourAR['FICJOINTDP']; ?>" ><?php echo $row_rsCourAR['FICJOINTDP']; ?>
Messages postés
64
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
29 février 2008

Personne n'a une petite idée ???