【问题标题】:Link to force download of MP3 files to default downloads folder强制将 MP3 文件下载到默认下载文件夹的链接
【发布时间】:2012-08-13 13:49:56
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 无法完成。如果任何浏览器允许它,我会认为它坏了。

标签: audio hyperlink mp3 download


【解决方案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

【讨论】:

  • 非常好。这让生活更轻松。
【解决方案2】:

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

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

【讨论】:

  • 谢谢,将“FilesMatch”添加到我的 .htaccess 中效果很好,并且可以与用户下载设置一起使用
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      这会给所有最近的浏览器带来许多危险信号。
      文件下载是通过另存为功能管理的,以保证下载文件时的安全性。
      如果您可以下载 onclick 到文件夹,是什么阻止您不点击就下载?

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

      【讨论】:

        【解决方案6】:

        您需要控制请求才能执行此操作。根据您的 Web 服务器技术,有多种方法可以完成。您要做的是将“Content-Disposition”HTTP 标头设置为“附件;文件=某个文件'。这告诉浏览器下载这个文件而不是“打开”它(如果可以的话)。类似 c# 的示例是:

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

        但是您可以通过在 IIS 和 Apache 中的配置来完成此操作。谷歌搜索一下,我想你可以找到如何仅为 MP3 设置此标头,甚至有条件地(例如每个目录,或存在查询参数时)。

        【讨论】:

          猜你喜欢
          • 2010-11-03
          • 1970-01-01
          • 2023-03-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-14
          • 2011-08-03
          • 1970-01-01
          相关资源
          最近更新 更多