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 :
Et celui de ma page downloadAR.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <a href="downloadAR.php?filename=<?php echo $row_rsCourAR['FICJOINTDP']; ?>" ><?php echo $row_rsCourAR['FICJOINTDP']; ?></a>
Si quelqu'un avait une idée, merci d'avance.
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <?php // reconnait l'extension pour que le tיlיchargement // corresponde au type de fichier afin d'י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); ?>
Partager