The download attribute of the
<a> tag is new in HTML5. What is allows you to do is specify a target, a file, that will be downloaded when a visitor clicks on the hyperlink. This is useful if you are linking to a file that is auto generated but you want the file to be consistently downloaded as the same name. An example of this would be:
<a href="http://yourdomain.com/download/020d9aj209s.zip" download="wordpress.zip">Download WordPress</a>
In the example, a generated file of
020d9aj209s.zip is created. This file contains a build of the latest published version of WordPress. However,
020d9aj209s.zip means nothing to the visitor, so you want the file to be downloaded as the software name, which in this case is
wordpress, which we defined in the
download attribute of the link example.
You can also use the download attribute to force file downloads. This is also extremely useful, as you would normally have to create code or define force download on the server side, which is tricky as you may force all file extensions to be downloaded. To give you an example, let’s say that you have created a file called
README.txt, which contains instructions a individual should read before using a application or software.
<a href="http://yourdomain.com/README.txt">Read Instructions</a>
When a individual clicked on the hyperlink above, the browser would open the
README.txt file. The file would not download; it would just display in the browser. However, with the download attribute, we could force the file to download.
The download attribute works in Chrome, Firefox and Opera (versions newer than 12). Therefore, the download attribute is not supported by Internet Explorer, Safari or Opera versions 12 and earlier.
Download Attribute Usage
Since the download attribute works off of the
href attribute, the
href attribute must be defined and set.
The download attribute file name and file extension can be different from the file name and file extension set in the
href attribute, although in order to work, they should be using the same program type.
If the file extension is omitted from the download attribute, the file extension will be taken from the
href attribute, i.e.
<a href="http://yourdomain.com/README.txt" download="instructions">Read Instructions</a>
README.txt would be downloaded as