我对HTML有基本的了解。我想在我的示例网站上创建下载链接,但是我不知道如何创建。如何创建一个下载文件的链接而不是访问它?
在支持HTML5的现代浏览器中,以下操作是可能的:
<a href="link/to/your/download/file" download>Download link</a>
你也可以使用这个:
<a href="link/to/your/download/file" download="filename">Download link</a>
这将允许您更改实际下载的文件的名称。
这个答案已经过时了。现在我们有了
download
属性。(请参阅此MDN的链接)
如果你所说的“下载链接”是指用于下载文件的链接,请使用:
<a href="http://example.com/files/myfile.pdf" target="_blank">Download</a>
target=_blank
会在下载开始前打开一个新的浏览器窗口。当浏览器检测到资源是文件下载时,该窗口通常会被关闭。
请注意,浏览器已知的文件类型(例如JPG或GIF图像)通常会在浏览器中打开。
您可以尝试发送正确的标头以强制下载,例如这里所概述的方式。(服务器端脚本或对服务器设置的访问权限是必须的。)
除了已经提到的HTML5的<a download
属性外,浏览器的“下载到磁盘”行为也可以通过以下HTTP响应头来触发:
Content-Disposition: attachment; filename=ProposedFileName.txt;
这是在 HTML5 之前的方法(对支持 HTML5 的浏览器仍然有效)。
下载链接是指您想要下载的资源的链接。它的构建方式与任何其他链接相同:
<a href="path to resource.name of file">Link</a>
<a href="files/installer.exe">Link to installer</a>
要链接到文件,与其他页面链接相同:
<a href="...">link text</a>
如果想要强制下载即使它们有内嵌插件(Windows + QuickTime = 呕吐),可以在htaccess / apache2.conf中使用以下内容:
AddType application/octet-stream EXTENSION
<p><a href="file:///........example.pdf" download target="_blank">test pdf</a></p>
<p><a href="images/logo2.png" download>test pdf</a></p>
<a href="yourfilename" download>Download</a>
它将下载带有原始名称的文件。在旧的浏览器中,这个选项是不可用的。
第二
<a href="yourfilename" download="newfilename">Download</a>
<a target="_blank" download="realname.mp3" href="realname.UNKNOWN">Download it</a>
<a target="_blank" href="realname.mp3">Play it</a>
我本以为在查询末尾添加一个虚拟查询或者通过混淆扩展名的方式可以解决问题,但可惜并不行。
HTML5中,<a>
标签的下载属性是新功能。
<a href="http://www.odin.com/form.pdf" download>下载表格</a>
或者
<a href="http://www.odin.com/form.pdf" download="表格">下载表格</a>
我更喜欢第一个,因为它比任何扩展名都更可取。
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)
}
.exe
文件想要让用户下载。然而,我自己尝试了一下,但是这个方法行不通。它只会把我带到源代码,我不希望别人看到。 - Daniyal Warraich