我对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>
这将允许您更改实际正在下载的文件的名称。
其他回答
在支持HTML5的现代浏览器中,可以实现以下功能:
<a href="link/to/your/download/file" download>Download link</a>
你也可以用这个:
<a href="link/to/your/download/file" download="filename">Download link</a>
这将允许您更改实际正在下载的文件的名称。
这里还有一个更微妙的方法。
我想有链接,既允许在浏览器播放和显示,以及一个纯粹的下载。新的下载属性很好,但不能一直工作,因为浏览器播放或显示文件的强制要求仍然很强。
但. .这是基于检查URL的文件名的扩展名!您不希望篡改服务器的扩展映射,因为您希望以两种不同的方式交付相同的文件。因此,对于下载,您可以通过将文件软链接到一个对扩展映射不透明的名称来欺骗它,然后使用下载的重命名功能来修复该名称。
<a target="_blank" download="realname.mp3" href="realname. mp3"未知”>下载< / > <a target="_blank" href="realname.mp3">播放它</a> .mp3
我希望只是抛出一个虚拟的查询结束或以其他方式混淆扩展将工作,但遗憾的是,它没有。
如果您将文件托管在AWS中,这可能适用于您。代码很容易理解。由于浏览器不支持同源下载链接,解决这个问题的一种方法是将图像URL转换为base64 URL。然后,你就可以正常下载了。
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)
}
这个线程现在可能很古老了,但它在html5中适用于我的本地文件。
pdf文件:
< p > < a href = "文件 :///........ example.pdf“下载目标= "平等" >测试pdf < / > < / p >
这将在一个新的窗口中打开pdf并允许你下载它(至少在firefox中)。对于任何其他文件,只要使它的文件名。对于图像和音乐,你会希望将它们存储在与你的网站相同的目录中。所以就像
<p><a href="images/logo2.png" download>test pdf</a></p>
你可以用两种方式使用
<a href="yourfilename" download>Download</a>
在旧浏览器中,这个选项是不可用的
2nd
<a href="yourfilename" download="newfilename">Download</a>
在这里,您可以选择重命名您的文件,并下载与不同的名称
推荐文章
- 使伸缩项目正确浮动
- 形式内联内的形式水平在twitter bootstrap?
- 自定义元素在HTML5中有效吗?
- 如何触发自动填充在谷歌Chrome?
- 创建圈div比使用图像更容易的方法?
- 为什么Chrome浏览器不正确地确定页面是在不同的语言,并提供翻译?
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- Bootstrap抛出Uncaught错误:Bootstrap的JavaScript需要jQuery
- 如何改变文本区域的边框颜色:焦点
- 我如何设置背景颜色为文本的宽度,而不是整个元素的宽度,使用CSS?
- 如何删除和清除所有的本地存储数据
- 强制打开“另存为…”弹出打开文本链接点击PDF在HTML
- 如何修改标签文本?
- 是否有一个链接到GitHub下载文件的最新版本的存储库?
- 在HTML中还有其他有用的空格码吗,比如半空格的 , em-spaces, en-spaces等等?