157 votes

(HTML) Téléchargez un fichier PDF au lieu de les ouvrir dans le navigateur lorsque vous cliquez dessus.

Je me demandais comment faire un lien de fichier PDF téléchargeable au lieu de les ouvrir dans le navigateur? Comment cela se fait-il en HTML? (Je suppose que c'est fait via javascript ou autre chose).

161voto

Sarim Points 1223

Avec html5, c'est possible maintenant. Définir un "téléchargement" attr dans l'élément.

 <a href="http://link/to/file" download="FileName">Download it!</a>
 

Source: http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download

97voto

Yiğit Yener Points 3398

Cela n'est possible qu'avec la définition d'un en-tête de réponse http par le code côté serveur. À savoir;

 Content-Disposition: attachment; filename=fname.ext
 

52voto

DA. Points 15714

Vous ne pouvez pas faire cela avec HTML. C'est une solution basée sur un serveur. Vous devez diffuser le fichier afin que le navigateur déclenche la boîte de dialogue de sauvegarde.

Je conseillerais de ne pas le faire. La manière dont un utilisateur interagit avec un PDF doit être laissée à l'utilisateur.

13voto

php guy Points 81

Vous devez modifier les en-têtes http envoyés. En fonction de votre serveur, vous pouvez modifier votre fichier .htaccess comme suit:

 <FilesMatch "\.(?i:pdf)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>
 

9voto

mihsathe Points 1687

Vous pouvez utiliser

 Response.AddHeader("Content-disposition", "attachment; filename=" + Name);
 

Découvrez cet exemple:

http://www.codeproject.com/KB/aspnet/textfile.aspx

Cela vaut pour ASP.NET. Je suis sûr que vous pouvez trouver des solutions similaires dans tous les autres langages côté serveur. Cependant, il n'y a pas de solution javascript à ma connaissance.

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