IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Retrouver le nom de fichiers téléchargés


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 115
    Par défaut Retrouver le nom de fichiers téléchargés
    Bonjour à toutes et à tous,

    J'ai récupéré le contenu d'un fonction de téléchargement de fichier et je l'utilise pour télécharger plusieurs fichiers à le suite. Cette fonction est la suivante :

    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
            async function chgtHistos() {
              for (let i = 0; i < 7; i++) {
                fetch('/quelFichier?val='+i)
                  .then(response => response.blob())
                  .then(blob => {
                      const url = window.URL.createObjectURL(blob);
                      const a = document.createElement('a');
                      a.style.display = 'none';
                      a.href = url;
                      a.download = 'fichier_telecharge.txt';
                      document.body.appendChild(a);
                      a.click();
                      window.URL.revokeObjectURL(url);
                  })
                  .catch(error => console.error('Erreur lors du téléchargement:', error));
              }
            }
    elle appelle :
    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
      server.on("/quelFichier", HTTP_GET, [](AsyncWebServerRequest *request){
        if (request->hasParam("val")) {
          File root = LittleFS.open("/");
          File file = root.openNextFile();
          noFch = request->getParam("val")->value().toInt(); 
          bool vu = false;
          while(file) {
            if (strncmp(file.path(), nomJour[noFch], 4) == 0) {
              vu = true;
              Serial.println(file.path());
              request->send(LittleFS, file.path(), String(), true); // Envoie le fichier en téléchargement
            }
            if (vu == true)
              break;
            else
              file = root.openNextFile();
          }
        }
      }); 
    }
    Le téléchargement de chacun des fichiers se passe bien à ceci près que leur nom est celui donné dans la ligne : a.download = 'fichier_telecharge.txt';Y a-t-il un moyen de récupérer le vrai nom de chaque fichier ?

    Cordialement.

    Pierre.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 501
    Par défaut
    dans la variable que vous avez appelé response vous trouverez tous les entêtes http envoyés par le serveur.

  3. #3
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 115
    Par défaut
    Citation Envoyé par mathieu Voir le message
    dans la variable que vous avez appelé response vous trouverez tous les entêtes http envoyés par le serveur.
    C'est vrai, mais il faut avoir une bonne connaissance de cette structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                  .then(response => {
                    const contentDisposition = response.headers.get('Content-Disposition');
                    const defaultFileName = `fichier_${i}.txt`; // Nom par défaut si le serveur n'en fournit pas
                    let fileName = defaultFileName;
                    if (contentDisposition && contentDisposition.includes('filename=')) {
                      const match = contentDisposition.match(/filename="?([^"]+)"?/);
                      if (match) {
                        fileName = match[1];
                      }
                    }
                    return response.blob().then(blob => ({ blob, fileName }));
                  })
    Cordialement.

    Pierre

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 501
    Par défaut
    vous pouvez utiliser console.log() pour cela, vous verrez l'objet dans la console de développement de votre navigateur et ensuite vous pouvez cliquer sur les différents attributs pour naviguer dans l'objet s'il y a plusieurs niveaux de profondeur.

    votre souci est résolu ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/08/2016, 16h57
  2. retrouver un nom de fichier
    Par sonia599 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/06/2014, 18h25
  3. retrouver le nom du fichier modifié
    Par ikuzar dans le forum Debian
    Réponses: 1
    Dernier message: 25/08/2010, 13h19
  4. Include() : retrouver le nom du fichier inclus
    Par december dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2009, 08h12
  5. [Libairie dynamique]Retrouver le nom du fichier
    Par lovecpp dans le forum Linux
    Réponses: 0
    Dernier message: 30/08/2007, 22h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo