如何设置只下载部分文件的超链接?

Posted

技术标签:

【中文标题】如何设置只下载部分文件的超链接?【英文标题】:How to setup a hyperlink that only downloads part of a file? 【发布时间】:2016-06-02 04:17:18 【问题描述】:

如果我有一个链接到另一台服务器上的 mp3 文件的超链接,当用户单击该链接时,如何让浏览器只下载该文件的前 15 秒(或其他持续时间)?是否有一个 html5 属性会自动执行此操作?

【问题讨论】:

IMO,不可能.. 参考partially download a file with javascript 【参考方案1】:

是的,有点 - Media Fragment URI 规范允许您在 URI 中指定时间范围。您可以附加一个带有片段的 URI 和 t=:

#t=from,to

例如:

http://domain.to/music.mp3#t=0,10    (or just t=,10 in this case if from=0)

将加载 0-10 秒的数据。

示例

Loading... will auto-play<br>
<audio
  src="https://mp3l.jamendo.com/?trackid=912259&format=mp31#t=0,10"
  autoplay controls preload="none"></audio>

<br><br>Or click this link:<br>
<a href="https://mp3l.jamendo.com/?trackid=912259&format=mp31#t=0,10">
CTRL + Click link to play 10s of audio in a new tab...</a>

但是,这不一定会阻止浏览器加载其余的音频数据。片段只是告诉媒体​​元素在特定时间开始和停止,除了定义片段时间之外,无需手动执行。

将 preload 设置为 none 可能会有所帮助,但即使这样,浏览器也可以加载完整的文件。您可以深入了解Media Source Extensions 来控制缓冲区如何加载和缓存数据,但它是wide topic。

或者使用 Range 标头与片段 uri 结合通过 XHR 加载,但您需要提前了解有关音频文件的一系列详细信息才能确定字节范围,例如比特率、通道等。

【讨论】:

以上是关于如何设置只下载部分文件的超链接?的主要内容,如果未能解决你的问题,请参考以下文章

在一个excel文件里头有1600个PDF的超链接,如何批量下载?

WinForms标签内的超链接

强制本地 html 文件中的超链接打开关联的应用程序而不是下载

使用 c# 在 OpenOffice calc 中的超链接

android中,如何屏蔽WebView里的超链接?

如何用LaTeX设置参考文献的超链接