55 votes

Forcer un navigateur à enregistrer le fichier sous après avoir cliqué sur un lien

Duplicata possible :
Est-il possible de lancer une invite de téléchargement dans le navigateur pour les types MIME reconnus en utilisant uniquement JavaScript (approche côté client) ?

Existe-t-il un moyen de forcer un navigateur avec une routine JavaScript à enregistrer un fichier sous ("enregistrer sous") après avoir cliqué sur un lien ? J'ai besoin que les images soient téléchargées directement par défaut et non rendues par le navigateur.

1 votes

Vous devez faire cela dans le serveur.

205voto

Austin Points 3876

Vous pouvez utiliser l'attribut de téléchargement HTML5 comme suit :

<a href="path/to/file" download>Click here to download</a>

Cela ouvre une boîte de dialogue "Enregistrer sous", quel que soit le type de fichier, sans vous faire quitter la page.

8 votes

D'après ce que je comprends actuellement, cet attribut n'est reconnu et honoré que dans Google Chrome.

3 votes

Est-ce qu'il se dégrade gracieusement pour les navigateurs qui ne le supportent pas encore ?

5 votes

@JacksonHenley Il établit un lien vers la ressource en ignorant simplement l'attribut de téléchargement. Regardez cette astuce ici : jsfiddle.net/GTCfy Je l'ai également vérifié. Il ne fonctionne pas dans les dernières versions d'Internet Explorer, de Mozilla Firefox ou de Safari. Tous les autres sont non testés. Il fonctionne dans Google Chrome .

15voto

Matthew Somerville Points 1266

Si vous contrôlez le serveur, vous devez le configurer pour qu'il envoie un en-tête Content-Disposition : attachment pour les fichiers que vous souhaitez télécharger (par exemple, vous pouvez le faire dans un fichier .htaccess pour que tous les .jpegs se trouvent dans un répertoire particulier).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X