Bonjour à toutes et à tous,
Je ne sais pas si je suis sur le bon forum, me déplacer si nécessaire.
Merci.
Les fichiers à télécharger sont situés dans un dossier "telechargements_publics". (voir le lien ci-dessous)
Problème qui se produit depuis environ 6 mois, (très fréquent et aléatoirement)
Site en service depuis 17 ans.
En cliquant un fichier, il se télécharge bien dans tous les cas, si j'utilise Mozilla-Firefox / Win XP.
En utilisant Mozilla-Firefox / Win10 :
- Si le fichier à télécharger est petit (50 ko) cela fonctionne bien.
- Pour un fichier de 500 ko et plus (limite non définie), le fichier téléchargé a une taille 0 octet et "échec" s'affiche.
Parfois le nom du fichier est complété avec ".PART'" (partiel).
Parfois le nom du fichier comporte des caractères bizarres juste avant le point qui précède l'extension.
// Extrait de mon fichier dowload_publics.php (attention : pas download_publics.php)
header("Pragma: public"); // : Spécification public pour les proxys et serveurs ?
header("Expires: 0"); // set expiration time. Toute machine, Recherche toujours la version sur le serveur
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); // Avertir le navigateur,
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=\"" . basename($le_fichier) . "\""); // accepte les espaces et accents dans les noms de fichiers.
header("Content-Transfer-Encoding: binary"); // force en binaire le téléchargement bit à bit
header("Content-Length: ".filesize($chemin_fichier )); // spécifie la taille, chemin et nom de fichier
@readfile($chemin_fichier); // envoie le fichier
Pour faire le test et vous permettre de constater :
https://www.microfer.fr/telechargements_publics.php
PS : Après avoir effectué d'autres tests sur autres PC, d'autres SE (win, linux), d'autres navigateurs.
En résumé :
- Le problème se produit aléatoirement dans tous les cas. (dans 95% des cas et 95% du temps.)
- Parfois il suffit d'attendre 10 mn et cela fonctionne.
- Ce n'est pas lié au type de fichier. (pdf, Zip, xls, JPG)
- Une commande directe fonctionne à tous les coups, Voir le lien ci-dessous. (4 ou 5 tests réalisés)
https://www.microfer.fr/telechargeme..._pratiques.pdf (exemple)
- le compteur de téléchargements s'incrémente bien. (rafraîchir la page éventuellement)
- en observant bien sous Win 10 / Firefox on voit que le téléchargement débute bien.
- Très souvent, le nom du fichier est transmis et l'opération des termine en échec. taille = 0 octet.
- J'ai remarqué qu'il y avait 2 tentatives de téléchargements. (test avec fichier de 3Mo )
(Le compteur croît puis repart à zéro et l'échec précise "problème réseau")
Ma conclusion :
- problème de protocole de transmission. (des erreurs)
- Or tous mes paramètres de transmission sont dans mon fichier dowload_publics.php dont extrait ci-avant.
Vous pouvez voir mes paramètres header.
D'où vient ce problème ? et comment y remédier ?
Si vous avez d'autres indices, merci de me les communiquer.
Merci d'avance.
-----