如何在html中创建下载链接? 我有一个HTML的基本思想。我想在我的示例网站上创建下载链接,但我不知道如何创建它。我该如何链接下载文件而不是访问文件?

问题描述 投票:0回答:10
在支持HTML5的现代浏览器中,可以使用以下内容:

<a href="link/to/your/download/file" download>Download link</a>
html download
10个回答
580
投票

<a href="link/to/your/download/file" download="filename">Download link</a>

这将允许您更改实际下载的文件的名称。
    

这个答案已经过时了。我们现在有

download

属性

188
投票
链接到mdn

如果是“下载链接”,则是指向文件的链接下载,请使用
<a href="http://example.com/files/myfile.pdf" target="_blank">Download</a>

target=_blank
将在下载开始之前将出现一个新的浏览器窗口。当浏览器发现资源是文件下载时,该窗口通常会关闭。

注意浏览器已知的文件类型(例如JPG或GIF映像)通常会在浏览器中打开。 您可以尝试发送正确的标题来强制下载,例如概述,例如

here
。 (为此,需要服务器端脚本或访问服务器设置。)

添加(或在替换中)已提及的HTML5的wittibute,

以下HTTP响应标头:

<a download

这是在HTML5之前进行的(并且仍然与支持HTML5的浏览器一起使用)。


27
投票

Content-Disposition: attachment; filename=ProposedFileName.txt;

    

要链接到文件,执行与任何其他页面链接相同:

<a href="path to resource.name of file">Link</a> <a href="files/installer.exe">Link to installer</a>
即使有嵌入式插件(Windows + QuickTime = ugh),也可以强制下载的内容,您可以在htaccess / apache2.conf:

中使用它。

<a href="...">link text</a>

11
投票

this线程可能到现在很古老,但是这在我本地文件中在HTML5中起作用。 pdfs:

AddType application/octet-stream EXTENSION

10
投票

这应该在新窗口中打开PDF,并允许您下载(至少在Firefox中)。 对于任何其他文件,只需将其制作为文件名即可。对于图像和音乐,您需要将它们存储在与网站同一目录中。所以它会像

<p><a href="file:///........example.pdf" download target="_blank">test pdf</a></p>

您可以通过两种方式使用
<p><a href="images/logo2.png" download>test pdf</a></p>

7
投票

<a href="yourfilename" download>Download</a>

2nd

it will download file with original name In Old Browsers this option was not available

<a href="yourfilename" download="newfilename">Download</a>



4
投票
我想拥有允许浏览器播放和显示的链接,以及一个纯粹的下载链接。新的下载属性很好,但由于浏览器强迫播放或显示文件仍然非常强大,但无法一直工作。

但这是基于检查URL文件名上的扩展名!您不想使用服务器的扩展映射,因为您想两种不同的方式交付相同的文件。因此,对于下载,您可以通过将文件软化到该名称,该名称不透明该扩展名映射,指向它,然后使用下载的重命名功能来修复该名称。


Here You have option to rename your file and download with a different name

我希望我只是在末尾扔一个虚拟查询,或者使扩展的混淆能够起作用,但可悲的是,事实并非如此。

    


2
投票
<a target="_blank" download="realname.mp3" href="realname.UNKNOWN">Download it</a> <a target="_blank" href="realname.mp3">Play it</a>

标签的新属性

<a>

<a href="http://www.odin.com/form.pdf" download>Download Form</a>

我更喜欢第一个相对于任何扩展。

如果您将文件托管在AWS中,则可能对您有用。该代码非常容易理解。由于浏览器不支持相同的原始下载链接,因此解决图像URL的一种方法是将图像URL转换为base64 URL。然后,您可以正常下载它。
<a href="http://www.odin.com/form.pdf" download="Form">Download Form</a>

您必须下载的所有图像应该是您的

0
投票
不是来自其他网站的URL。浏览器仍然不支持Cross Origin下载,它将始终将您重定向到链接。

就像这个

var canvas = document.createElement("canvas") var ctx = canvas.getContext('2d') var img = new Image() img.src = your_file_url + '?' + new Date().getTime(); img.setAttribute('crossOrigin', '') var array = your_file_url.src.split("/") var fileName = array[array.length - 1] img.onload = function() { canvas.width = img.naturalWidth canvas.height = img.naturalHeight ctx.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, canvas.width, canvas.height) var dataUrl = canvas.toDataURL("image/png", 1) var a = document.createElement('a') a.href = dataUrl a.download = fileName document.body.appendChild(a) a.click() document.body.removeChild(a) }

so example.com上的文件名。

<a href="www.yoursite.com/theThingYouWantToDownload">Link name</a>

我知道我迟到了,但这是搜索1小时后得到的

<a href="www.example.com/name.jpg">Image</a>


0
投票

<?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); } } ?>

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.