Como posso criar link de download em HTML?
Tenho uma ideia básica de HTML. Eu quero criar o link de download em meu site de amostra, mas eu não tenho idéia de como criá-lo. Como faço um link para baixar um arquivo em vez de visitá-lo?
10 answers
Esta resposta está ultrapassada. Agora temos o atributo download
como descrito aqui .
Se por "a ligação de download" se refere a uma ligação para um ficheiro a transferir, use
<a href="http://example.com/files/myfile.pdf" target="_blank">Download</a>
O target=_blank
fará aparecer uma nova janela do navegador antes do início da transferência. Essa janela geralmente será fechada quando o navegador descobre que o recurso é um download de arquivo.
Note-se que os tipos de ficheiros conhecidos pelo navegador (por exemplo, imagens JPG ou GIF) serão normalmente abertos dentro do navegador.
Pode tentar enviar os cabeçalhos certos para forçar um download como descrito por exemplo Aqui. (scripting do lado do servidor ou acesso à configuração do servidor é necessário para isso.)
Em navegadores modernos que suportam o HTML5, é possível o seguinte:
<a href="link/to/your/download/file" download>Download link</a>
Também pode usar isto:
<a href="link/to/your/download/file" download="filename">Download link</a>
Isto permitir-lhe-á alterar o nome do ficheiro que está a ser transferido.
Além (ou em substituição) do atributo HTML5 <a download
já mencionado,
o comportamento de download do navegador para o disco também pode ser despoletado pelo seguinte cabeçalho de resposta http:
Content-Disposition: attachment; filename=ProposedFileName.txt;
Este era o modo de fazer antes do HTML5 (e ainda funciona com navegadores que suportam o HTML5).
Um link de download seria um link para o recurso que deseja transferir. É construído da mesma forma que qualquer outra ligação seria:
<a href="path to resource.name of file">Link</a>
<a href="files/installer.exe">Link to installer</a>
Para ligar ao ficheiro, faça o mesmo que qualquer outra ligação de Página:
<a href="...">link text</a>
Para forçar as coisas a baixar mesmo que tenham um plugin incorporado (Windows + QuickTime = ugh), você pode usar isto no seu htaccess / apache2.conf:
AddType application/octet-stream EXTENSION
Para pdfs:
<p><a href="file:///........example.pdf" download target="_blank">test pdf</a></p>
Isto deve abrir o pdf numa nova janela e permitir-lhe baixá-lo (pelo menos no firefox). Para qualquer outro arquivo, basta torná-lo o nome do arquivo. Para imagens e música, você gostaria de armazená-los no mesmo diretório que o seu site embora. Então seria como
<p><a href="images/logo2.png" download>test pdf</a></p>
O atributo download é novo para a marca <a>
em HTML5
<a href="http://www.odin.com/form.pdf" download>Download Form</a>
ou <a href="http://www.odin.com/form.pdf" download="Form">Download Form</a>
Prefiro o primeiro que é preferível em relação a qualquer extensão.
O atributo download não funciona no IE, ignora o "download" completamente. O download não funciona no Firefox se o href apontar para um site remoto. Então o exemplo de Odin não funciona no Firefox 41.0.2.
Assim
<a href="www.yoursite.com/theThingYouWantToDownload">Link name</a>
Então, um nome de ficheiro.jpg num site example.com ficaria assim.
<a href="www.example.com/name.jpg">Image</a>
<?php
$file = 'file.pdf';
if (! file) {
die('file not found'); //Or do something
} else {
if(isset($_GET['file'])){
// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
// Read the file from disk
readfile($file); }
}
?>
E para ligação descarregável fiz isto
<a href="index.php?file=file.pdf">Download PDF</a>