Comment télécharger un fichier via une URL puis obtenir son nom

Ceci est pour un script que je crée avec JS + jQuery. Je me demande s’il est possible de trouver le nom du fichier à partir de l’URL.

C’est sous la forme de:

http://example.org/download.php?action=download&id=1234 

et puis ce lien télécharge un fichier tel que “cat.jpg”.

Comment savoir comment s’appelle le nom du fichier? Je n’ai pas besoin de sauvegarder le fichier sur l’ordinateur de l’utilisateur. Il suffit de trouver le nom du fichier.

Je suis ouvert à l’utilisation de n’importe quelle bibliothèque JS – mais je dois m’assurer que le fichier n’est pas réellement enregistré sur l’ordinateur de l’utilisateur (ou peut-être est-il simplement enregistré dans un dossier temporaire, quelque part).

La chose la plus simple que vous puissiez faire est de faire une demande HEAD, afin de ne pas télécharger le fichier mais uniquement les en-têtes de réponse. De là, vous obtenez l’en Content-Disposition tête Content-Disposition qui contient le champ filename .

Quelque chose comme ça dans jQuery:

 $.ajax({ type: "HEAD", url: 'http://example.org/download.php?action=download&id=1234', success: function(message, text, response) { var header = response.getResponseHeader('Content-Disposition'); console.log(header); } }); 

variable d’en- header sera quelque chose comme attachment; filename="image.jpg" attachment; filename="image.jpg" . Maintenant, il est facile d’extraire une partie du nom de fichier:

 var filename = header.match(/filename="(.+)"/)[1]; // image.jpg