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

问题描述 投票:1回答:6

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

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

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

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

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

audio hyperlink mp3 download
6个回答
1
投票

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

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


1
投票

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


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>

“download”属性是HTML5中“a”标记的新属性,最近的浏览器支持它。它也适用于其他文件类型,不限于mp3文件。

见:w3 schools page on download attribute


0
投票

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


0
投票

这将引发所有最近浏览器的许多危险信号。 文件下载通过“另存为”功能进行管理,以便在下载文件时保证安全性。 如果你可以下载onclick到一个文件夹什么阻止你下载没有点击? 但是,如果您仍然希望实现此目的,则必须使用第三方组件,如flash或activeX,但这些组件将首先要求用户授予您特权(信任)。


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.