链接强制下载MP3文件到默认下载文件夹

时间:2012-08-13 13:49:57

标签: audio hyperlink mp3 download

我在播放列表中有一些MP3文件,每个文件都在其旁边有一个链接:

<a href="/music/track1.mp3"></a>

用户可以右键单击该链接并选择“下载链接文件”(或浏览器中的等效选项)。

我想要的是当用户点击链接(即标准左键单击)而不是通过“另存为”对话框时自动下载文件,而不是用户浏览器的默认下载文件夹。

实现这一目标的最简单方法是什么?

6 个答案:

答案 0 :(得分:1)

您需要配置您的网络服务器以将Content-Disposition attachment添加到HTTP标头。 Here是有关如何使用Apache执行此操作的说明。

正如Mitch Satchwell所说,您也可以使用服务器端语言来执行此操作,这些语言在足够低的级别上运行,因此您可以修改HTTP标头。

答案 1 :(得分:1)

使用服务器端语言,您可以设置Content-Disposition标题以在用户单击链接时强制下载,但是您无法控制浏览器以及文件存储在用户计算机上的位置,取决于个人用户设置。

答案 2 :(得分:1)

如果您要下载的是mp3文件,而不是在同一窗口或其他窗口中播放,只需在链接中添加“下载”属性,例如

<a href="www.mysite.com/uploads/mysong.mp3" download>download my song</a>

<a href="www.mysite.com/uploads/mysong.mp3" download="filename.mp3">download my song</a>

HTML5中的“ a”标签新增了“下载”属性,最近的浏览器支持该属性。它也适用于其他文件类型,并且不仅限于mp3文件。

请参阅:w3 schools page on download attribute

答案 3 :(得分:0)

如果用户将浏览器设置为提示所有下载,我认为这不可能。

答案 4 :(得分:0)

这会在所有最近的浏览器中引发许多危险信号 文件下载通过保存功能进行管理,以便在下载文件时保证安全性。
如果您可以下载onclick到文件夹,那么无需点击即可停止下载的文件?

但是,如果您仍想实现此目的,则必须使用第三方组件,如flash或activeX,但这些组件将首先要求用户授予您特权(信任)。

答案 5 :(得分:0)

您需要控制执行此操作的请求。根据您的Web服务器技术,有多种方法可以实现。你想要做的是将'Content-Disposition'HTTP标头设置为'attachment;文件= somefile”。这告诉浏览器下载此文件而不是“打开”它(如果可以)。像c#这样的例子就是:

response.AddHeader("Content-Disposition", "attachment; filename=downloadThisAudio.mp3"));

但是你可以通过IIS和Apache中的配置来实现这一点。有点谷歌搜索我认为你可以找到如何只为MP3设置此标头,甚至有条件(如每个目录,或存在查询参数时)。