Téléchargements aléatoires de fichiers sur mon site sous OVH.
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Téléchargements aléatoires de fichiers sur mon site sous OVH.



  1. #1
    Jeryko

    Téléchargements aléatoires de fichiers sur mon site sous OVH.


    ------

    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.

    -----
    Problème résolu : N'oubliez pas de préciser ce que vous avez trouvé et les mesures prises. Merci

  2. #2
    micapivi

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    Bonjour

    Effectivement, même problème constaté en utilisant les liens de la page web citée avec Firefox sur Linux.

    =======
    Par contre, en utilisant la ligne de commande et wget
    le téléchargement se fait sans aucun problème :

    Code:
    mic@deb12:~$ wget 'https://www.microfer.fr/dowload_publics.php?mon_fichier=000-2-Manuel%20utilisateur%20HP%20Laptop%2015.pdf%20&PHPSESSID=2bc8571f8f21a625a023c71284d5c8a8' -O '000-2-Manuel utilisateur HP Laptop 15.pdf'
    --2024-02-29 21:32:32--  https://www.microfer.fr/dowload_publics.php?mon_fichier=000-2-Manuel%20utilisateur%20HP%20Laptop%2015.pdf%20&PHPSESSID=2bc8571f8f21a625a023c71284d5c8a8
    Résolution de www.microfer.fr (www.microfer.fr)… 213.186.33.2
    Connexion à www.microfer.fr (www.microfer.fr)|213.186.33.2|:443… connecté.
    requête HTTP transmise, en attente de la réponse… 200 OK
    Taille*: 3476175 (3,3M) [application/download]
    Sauvegarde en*: «*000-2-Manuel utilisateur HP Laptop 15.pdf*»
    
    000-2-Manuel utilisateur HP Lapt 100%[========================================================>]   3,31M  18,6MB/s    ds 0,2s    
    
    2024-02-29 21:32:33 (18,6 MB/s) — «*000-2-Manuel utilisateur HP Laptop 15.pdf*» sauvegardé [3476175/3476175]
    
    mic@deb12:~$ ls -l '000-2-Manuel utilisateur HP Laptop 15.pdf'
    -rw-r--r-- 1 mic mic 3476175 29 févr. 21:32 '000-2-Manuel utilisateur HP Laptop 15.pdf'
    mic@deb12:~$ 
    mic@deb12:~$ 
    mic@deb12:~$ 
    mic@deb12:~$ wget 'https://www.microfer.fr/dowload_publics.php?mon_fichier=Oscillo_METRIX_OX800_2_schemas.zip%20&PHPSESSID=2bc8571f8f21a625a023c71284d5c8a8' -O 'Oscillo_METRIX_OX800_2_schemas.zip'
    --2024-02-29 21:34:12--  https://www.microfer.fr/dowload_publics.php?mon_fichier=Oscillo_METRIX_OX800_2_schemas.zip%20&PHPSESSID=2bc8571f8f21a625a023c71284d5c8a8
    Résolution de www.microfer.fr (www.microfer.fr)… 213.186.33.2
    Connexion à www.microfer.fr (www.microfer.fr)|213.186.33.2|:443… connecté.
    requête HTTP transmise, en attente de la réponse… 200 OK
    Taille*: 3283646 (3,1M) [application/download]
    Sauvegarde en*: «*Oscillo_METRIX_OX800_2_schemas.zip*»
    
    Oscillo_METRIX_OX800_2_schemas.z 100%[========================================================>]   3,13M  16,3MB/s    ds 0,2s    
    
    2024-02-29 21:34:13 (16,3 MB/s) — «*Oscillo_METRIX_OX800_2_schemas.zip*» sauvegardé [3283646/3283646]
    
    mic@deb12:~$ ls -l Oscillo_METRIX_OX800_2_schemas.zip
    -rw-r--r-- 1 mic mic 3283646 29 févr. 21:34 Oscillo_METRIX_OX800_2_schemas.zip
    mic@deb12:~$ 
    mic@deb12:~$ 
    mic@deb12:~$ 
    mic@deb12:~$ wget 'https://www.microfer.fr/dowload_publics.php?mon_fichier=000-0-Plan%20de%20travail.pdf%20&PHPSESSID=2bc8571f8f21a625a023c71284d5c8a8' -O '000-0-Plan de travail.pdf'
    --2024-02-29 21:36:02--  https://www.microfer.fr/dowload_publics.php?mon_fichier=000-0-Plan%20de%20travail.pdf%20&PHPSESSID=2bc8571f8f21a625a023c71284d5c8a8
    Résolution de www.microfer.fr (www.microfer.fr)… 213.186.33.2
    Connexion à www.microfer.fr (www.microfer.fr)|213.186.33.2|:443… connecté.
    requête HTTP transmise, en attente de la réponse… 200 OK
    Taille*: 773917 (756K) [application/download]
    Sauvegarde en*: «*000-0-Plan de travail.pdf*»
    
    000-0-Plan de travail.pdf        100%[========================================================>] 755,78K  --.-KB/s    ds 0,1s    
    
    2024-02-29 21:36:03 (5,65 MB/s) — «*000-0-Plan de travail.pdf*» sauvegardé [773917/773917]
    
    mic@deb12:~$ ls -l '000-0-Plan de travail.pdf'
    -rw-r--r-- 1 mic mic 773917 29 févr. 21:36 '000-0-Plan de travail.pdf'
    mic@deb12:~$

  3. #3
    micapivi

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    Un extrait du contenu source de la page web :

    Code:
    …
    6  > <a class="small" href= " ./dowload_publics.php?mon_fichier=000-3-Maintenir son PC en etat operationnel.pdf " >000-3-Maintenir son PC en etat operationnel.pdf</a> &nbsp <font size= 1>556 Kio  (2107 téléchargements)</font>
    7  > <a class="small" href= " ./dowload_publics.php?mon_fichier=000-4-Protéger le système - sécurité informatique.pdf " >000-4-Protéger le système - sécurité informatique.pdf</a> &nbsp <font size= 1>612 Kio  (219 téléchargements)</font>
    …
    Dans chaque href
    il y a un caractère espace (juste après le signe égal) qui devrait être supprimé,
    il y a un caractère espace en trop au début et à la fin de chaque lien,
    et aussi quelques problèmes d'encodage de caractères
    Dernière modification par micapivi ; 29/02/2024 à 22h21.

  4. #4
    Jeryko

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    Bonjour micapivi,

    OK, merci, Je vais revoir cela.
    Et aussi faire une petite révision sur l'utilisation des header car tout cela est un peu loin, je n'en fais pas tous les jours !
    et supprimer le "@" de @readfile(....

    Le coup du wget ? pas très bien compris,
    Je n'utilise jamais le téléchargement direct sauf sur le forum FS lorsque que je désigne un fichier à télécharger.

    me laisser un peu de temps.
    A+
    Dernière modification par Jeryko ; 01/03/2024 à 10h03.
    Problème résolu : N'oubliez pas de préciser ce que vous avez trouvé et les mesures prises. Merci

  5. A voir en vidéo sur Futura
  6. #5
    Jeryko

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    Problème résolu : N'oubliez pas de préciser ce que vous avez trouvé et les mesures prises. Merci

  7. #6
    Jeryko

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    re,

    Je viens de passer 3 h à essayer d'autres combinaisons du header. aucun succès. le problème subsiste.
    Je ne sais plus quoi tester.

    "Je donne ma langue au chat" en attendant d'autres idées. La nuit porte conseil.
    Merci à tous.
    Problème résolu : N'oubliez pas de préciser ce que vous avez trouvé et les mesures prises. Merci

  8. #7
    Jeryko

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    Bonsoir à tous,

    J'ai contourné provisoirement le problème en supprimant les header et readfile($chemin_fichier);
    que j'ai remplacé par un lien direct.

    echo " Une erreur indéterminée s'est produite, veuillez cliquer sur ce lien pour télécharger le fichier demandé : ( $le_fichier ) <br>";
    echo " Télécharger quand même : <a href='https://www.microfer.fr/.$chemin_fichier' title= Je_télécharge> $le_fichier</a><br>";
    echo " Erreur en cours recherche. Reculer d'une page pour revoir la liste des fichiers.<br>";

    Pour tester et comparer les 2 cas de figures :
    Site N°1 (en provisoire)
    https://www.microfer.fr/telechargements_publics.php

    Site N°2 (qui présente le problème évoqué)
    https://www.microfer.fr/geryko/telec...ts_publics.php

    Si ça peut aider, Merci pour vos contributions.
    Problème résolu : N'oubliez pas de préciser ce que vous avez trouvé et les mesures prises. Merci

  9. #8
    Jeryko

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    bonsoir à tous,

    J'ai réussi à le faire fonctionner mais la raison exacte ?
    comme ceci : le code ci dessous.
    Si quelqu'un a des explications ! je suis preneur.
    merci à tous.
    Géry
    A noter comme résolu svp.

    compteur_a_jour($le_fichier, $taill_max); // comptage des téléchargements mis devant.

    header("Content-Disposition: attachment; filename=\"" . basename($le_fichier) . "\""); //les espaces et accents
    header("Content-Type: application/download"); // supprim pour test 01/03/2024
    header('Content-Transfer-Encoding:binary ');
    header('Content-Length: '.filesize($chemin_fichier));
    header('Pragma: no-cache');
    header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
    header('Expires: 0');
    @ob_end_flush();
    readfile($chemin_fichier);
    @ob_flush();
    @flush();

    exit(0); // ne pas supprimer, nécessaire pour OVH - je ne sais pas pourquoi.
    Problème résolu : N'oubliez pas de préciser ce que vous avez trouvé et les mesures prises. Merci

  10. #9
    umfred

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    il y a des réponses à ton questionnement dans les commentaires de la fonction readfile sur le site de php => https://www.php.net/manual/fr/function.readfile
    Citation Envoyé par TimB (16 years ago)
    To anyone that's had problems with Readfile() reading large files into memory the problem is not Readfile() itself, it's because you have output buffering on. Just turn off output buffering immediately before the call to Readfile(). Use something like ob_end_flush().

  11. #10
    Jeryko

    Re : Téléchargements aléatoires de fichiers sur mon site sous OVH.

    Bonjour umfred,

    Oui, je l'ai traduit, c'est bien ce que j'avais mis voir mon post #8 mais ça ne suffisait pas.
    Il fallait impérativement faire suivre readfile de exit.

    Nota :
    - Dans la même page download.php, à la suite de readfile, j'avais une fonction de comptage des téléchargements.
    . (Fonction appelée bien avant les header. voir post #8 ) .
    . J'aurais peut-être dû la mettre ailleurs en avant ? mais j'en avais un peu marre de cette affaire. (3 jours)
    - je ne sais pas lire l'anglais. ça n'aide pas !

    Merci pour ces précisions.
    Problème résolu : N'oubliez pas de préciser ce que vous avez trouvé et les mesures prises. Merci

Discussions similaires

  1. impossible effecteur un partage de fichiers entre un pc sous w10 et un smartphone sous android
    Par popol3426 dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 29/04/2023, 17h33
  2. la force .les fichiers mpp pour l'ouvrir en plein projet à partir d'un site web.
    Par BertrandAuch dans le forum Internet - Réseau - Sécurité générale
    Réponses: 0
    Dernier message: 17/11/2015, 08h00
  3. Distribution chi2 de variables aléatoires complexes sous formes quadratiques
    Par bidou8610 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 27/08/2014, 14h35
  4. Cherche un site comme YouSendit pour envoi de fichiers SVP
    Par roro123 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 6
    Dernier message: 18/06/2009, 12h59
  5. Uploader des fichiers dans un site
    Par invite61bfdc16 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 18/08/2004, 23h38
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...