例如一个 mp3 文件,很容易让用户使用浏览器打开它,或者通过右键单击和左键单击将链接另存为。
但是有没有一种简单的方法让用户通过简单的左键单击来下载它?同时保持 mp3 格式。
谢谢!
例如一个 mp3 文件,很容易让用户使用浏览器打开它,或者通过右键单击和左键单击将链接另存为。
但是有没有一种简单的方法让用户通过简单的左键单击来下载它?同时保持 mp3 格式。
谢谢!
您可以使用target=_blank
为此目的指定属性的基本 html 链接,
<a href="http://www.mysite.com/music.mp3" target="_blank">Download Link</a>
您可以制作下载页面(PHP),并将其放在您的 mp3 文件所在的文件夹中。在下载页面写这个:
<?
header('Content-disposition: attachment; filename= your_file.mp3);
readfile(your_file.mp3);
?>
将 your_file.mp3 重命名为 mp3 文件的真实名称。然后只需将链接放置到您刚刚创建的下载页面。当您单击链接时,将下载文件。
在执行此操作的网页中,您基本上无法在 javascript 中执行任何操作。下载链接的工作方式是在服务器上设置一个 HTTP 标头。将常规资源更改为可下载资源的标头是Content-disposition
. 具体来说,您需要将其发送为:
Content-Disposition: attachment; filename=music_file_name.mp3
这迫使浏览器执行“另存为”而不是尝试显示文件。
显然,您如何设置此标头取决于您的服务器或框架或编程语言或全部三者。这是一个关于如何在 PHP 中执行此操作的示例:
http_send_content_disposition("music_file_name.mp3");
http_send_file("music_file_name.mp3");
请注意,HTML 中的链接保持不变,无需更改。您甚至可以使用表单提交下载:
<a href="music_file_name.mp3">Download</a>
<form action="music_file_name.mp3">
<input type="submit" value="Download">
</form>
浏览器如何请求文件并不重要。只要Content-disposition
设置为“附件”,它就会显示“另存为”对话框来保存文件。
您可以在浏览器上安装 Greasemonkey 并在 Greasepot 上查找可以将 mp3 文件更改为可下载按钮的脚本。