{"id":2406,"date":"2012-04-23T08:15:05","date_gmt":"2012-04-23T06:15:05","guid":{"rendered":"https:\/\/www.creativejuiz.fr\/blog\/?p=2406"},"modified":"2015-01-18T16:07:55","modified_gmt":"2015-01-18T15:07:55","slug":"html5-attribut-download-pour-forcer-telechargement","status":"publish","type":"post","link":"https:\/\/www.creativejuiz.fr\/blog\/tutoriels\/html5-attribut-download-pour-forcer-telechargement","title":{"rendered":"HTML5 &#8211; Attribut download pour forcer le t\u00e9l\u00e9chargement d&rsquo;une ressource"},"content":{"rendered":"<p>Je vous parlais d&rsquo;une solution pour forcer le t\u00e9l\u00e9chargement gr\u00e2ce \u00e0 un morceau de code dans votre fichier .htaccess dans l&rsquo;<a href=\"\/blog\/tutoriels\/forcer-telechargement-fichier-par-navigateur\">article pr\u00e9c\u00e9dent<\/a>, alors que je venais juste de d\u00e9couvrir cet attribut HTML5 permettant de faire la m\u00eame chose en mieux. Pour le moment seul Chrome supporte cet attribut.<!--more--><\/p>\n<h2>Pr\u00e9sentation de l&rsquo;attribut <code>download<\/code><\/h2>\n<p>En gros cet attribut permet de sp\u00e9cifier au navigateur qu&rsquo;il ne doit pas se diriger (naviguer) vers la ressource cibl\u00e9e, mais la t\u00e9l\u00e9charger.<br \/>\nCet attribut s&rsquo;applique donc naturellement un \u00e9l\u00e9ment <code class=\"element\">a<\/code> et peut avoir une valeur qui sera attribu\u00e9e comme nom de fichier \u00e0 la ressource que vous allez t\u00e9l\u00e9charger. <\/p>\n<p>Voici un exemple d&rsquo;utilisation :<\/p>\n<pre class=\"code\"><code class=\"html boc-nogutter boc-nocontrols\">&lt;a href=\"http:\/\/www.creativejuiz.fr\/images\/main.jpg\" download=\"CreativeJuiz_Background\"&gt;T\u00e9l\u00e9charger l'image&lt;\/a&gt;<\/code><\/pre>\n<p>La valeur de l&rsquo;attribut <code>download<\/code> n&rsquo;a, a priori, aucune restriction, mais il faut avoir en t\u00eate qu&rsquo;il s&rsquo;agit d&rsquo;un nom de fichier et que tous les syst\u00e8mes ne sont pas \u00e9gaux quant au traitement de certains signes de ponctuation (mais contredites-moi si je fais erreur). Vous remarquerez que j&rsquo;ai \u00e9cris \u00ab\u00a0CreativeJuiz_Background\u00a0\u00bb en nom de fichier, et non \u00ab\u00a0CreativeJuiz_Background.jpg\u00a0\u00bb. En effet il est inutile de pr\u00e9ciser l&rsquo;extension du fichier si vous souhaitez conserver l&rsquo;originale.<\/p>\n<figure id=\"attachment_2426\" aria-labelledby=\"figcaption_attachment_2426\" class=\"wp-caption aligncenter\" style=\"width: 614px\"><img decoding=\"async\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/04\/download-chrome-attribut-html5.png\" alt=\"\" title=\"\" width=\"604\" height=\"39\" class=\"size-full wp-image-2426\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/04\/download-chrome-attribut-html5.png 604w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/04\/download-chrome-attribut-html5-300x19.png 300w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2012\/04\/download-chrome-attribut-html5-600x38.png 600w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><figcaption id=\"figcaption_attachment_2426\" class=\"wp-caption-text\">La barre de t\u00e9l\u00e9chargement de Chrome apr\u00e8s deux essais de l&#039;attribut download<\/figcaption><\/figure>\n<p>Si vous naviguez sur la derni\u00e8re version de Chrome, ce lien de d\u00e9mo devrait vous proposer de t\u00e9l\u00e9charger un fichier .png : <a href=\"http:\/\/creativejuiz.fr\/images\/main.jpg\" download=\"CreativeJuiz_Background\">T\u00e9l\u00e9charger l&rsquo;image<\/a><\/p>\n<p>La valeur de l&rsquo;attribut <code>download<\/code> accepte \u00e9galement l&rsquo;ajout d&rsquo;une extension de fichier, il est ainsi possible de proposer au t\u00e9l\u00e9chargement un fichier HTML transform\u00e9 en fichier TXT par exemple :<\/p>\n<pre class=\"code\"><code class=\"html boc-nogutter boc-nocontrols\">&lt;a href=\"http:\/\/www.creativejuiz.fr\/trytotry\/css3-box-shadow-after-before\/index.html\" download=\"CreativeJuiz_DropShadow.txt\"&gt;T\u00e9l\u00e9charger le code (.txt)&lt;\/a&gt;<\/code><\/pre>\n<p>Ce qui nous donnerait le lien suivant : <a href=\"http:\/\/www.creativejuiz.fr\/trytotry\/css3-box-shadow-after-before\/index.html\" download=\"CreativeJuiz_DropShadow.txt\">T\u00e9l\u00e9charger le code (.txt)<\/a><\/p>\n<p class=\"message remember\">Sous Firefox, le t\u00e9l\u00e9chargement automatique est d\u00e9sactiv\u00e9 si le lien renseign\u00e9 n&rsquo;est pas sur le m\u00eame domaine que la page courante. Le plus simple \u00e9tant de proposer des liens relatifs.<\/p>\n<h2>Avis personnel<\/h2>\n<p>Cet attribut est plut\u00f4t int\u00e9ressant en un sens, puisqu&rsquo;il permet d&rsquo;all\u00e9ger le fichier .htaccess ou certains scripts en PHP.<br \/>\nCependant, \u00e0 l&rsquo;image de l&rsquo;attribut <code>target<\/code> aujourd&rsquo;hui consid\u00e9r\u00e9 comme une mani\u00e8re de contraindre le visiteur \u00e0 naviguer d&rsquo;une certaine mani\u00e8re, cet attribut <code>download<\/code> ne serait-il pas en train de reproduire ce sch\u00e9ma de contrainte en for\u00e7ant un visiteur \u00e0 t\u00e9l\u00e9charger une image (ou tout autre type de fichier) alors qu&rsquo;il souhaite juste la visualiser dans son navigateur ? Il faudra voir cela \u00e0 l&rsquo;usage \ud83d\ude42<\/p>\n<div class=\"sources\">\n<h2>Sources et liens utiles<\/h2>\n<ul>\n<li><a href=\"http:\/\/html5-demos.appspot.com\/static\/a.download.html\" hreflang=\"en\" lang=\"en\">a[download] demonstration &#8211; HTML5 Demos<\/a><\/li>\n<li><a href=\"http:\/\/updates.html5rocks.com\/2011\/08\/Downloading-resources-in-HTML5-a-download\" hreflang=\"en\" lang=\"en\">HTML5 a[download] &#8211; HTML5Rocks<\/a><\/li>\n<li><a href=\"http:\/\/www.html5rocks.com\/en\/tutorials\/workers\/basics\/#toc-inlineworkers-bloburis\" hreflang=\"en\">Information sur les Blob URLs<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Je vous parlais d&rsquo;une solution pour forcer le t\u00e9l\u00e9chargement gr\u00e2ce \u00e0 un morceau de code dans votre fichier .htaccess dans l&rsquo;article pr\u00e9c\u00e9dent, alors que je venais juste de d\u00e9couvrir cet attribut HTML5 permettant de faire la m\u00eame chose en mieux. Pour le moment seul Chrome supporte cet attribut.<\/p>\n","protected":false},"author":4,"featured_media":2424,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","footnotes":""},"categories":[9,12],"tags":[416,49,16,456,454],"coauthors":[597],"class_list":["post-2406","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriels","category-veille-technologique","tag-attribut","tag-download","tag-html5","tag-octet-stream","tag-telechargement"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/2406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/comments?post=2406"}],"version-history":[{"count":0,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/2406\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media\/2424"}],"wp:attachment":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media?parent=2406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/categories?post=2406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/tags?post=2406"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/coauthors?post=2406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}