为.mp3文件下载创建简单按钮(无右键单击,无媒体播放器)

时间:2014-02-20 04:21:41

标签: php wordpress

我确定这是一个简单的任务,但在我的wordpress网站上,我想创建一个强制.mp3下载的下载按钮,无需打开播放器(左键单击时),或者用户必须右键单击'将目标另存为'。我只需要一个直接按钮,当左键单击该按钮会导致下载文件(以及Google Analytics可轻松跟踪)。

这需要.php脚本吗?你认为这将是一个非常常见的功能,而且很容易解决....但我花了几个小时才完成这项任务并且无法得到任何工作。

*如果不明显我的编码技能几乎不存在。

我非常感谢任何人可以帮助我解决这个问题的时间。谢谢!

*** EDIT

刚刚在另一篇文章中找到了这个,但没有评论是否可行。这是一个.pdf文件虽然......

<?php   
if (isset($_GET['file'])) { 
    $file = $_GET['file'] ;
        if (file_exists($file) && is_readable($file) && preg_match('/\.pdf$/',$file))  { 
            header('Content-type: application/pdf');  
            header("Content-Disposition: attachment; filename=\"$file\"");   
            readfile($file); 
        } 
    } else { 
    header("HTTP/1.0 404 Not Found"); 
    echo "<h1>Error 404: File Not Found: <br /><em>$file</em></h1>"; 
} 
?>

将上述内容保存为download.php

将此小片段保存为服务器上的某个PHP文件,您可以使用它在浏览器中下载文件,而不是直接显示。如果要提供除PDF以外的文件,请删除或编辑第5行。

您可以像这样使用它:

将以下链接添加到您的HTML文件中。

<a href="download.php?file=my_pdf_file.pdf">Download the cool PDF.</a>

1 个答案:

答案 0 :(得分:0)

嗯,这是可能的,但你需要编写一个脚本来完成它。这是http://youngdigitalgroup.com.au/tutorial-force-download-mp3-file-streaming/

中非常差的(安全性和基本编码方式)
file: downloadit.php

<?php
header ("Content-type: octet/stream"); 
header ("Content-disposition: attachment; filename=".$file.";"); 
header ("Content-Length: ".filesize($file)); 
readfile($file); 
exit;
?>

然后,您可以将其放入可公开访问的文件夹中,并按照以下方式构建链接:

http://www.yoursite.com/downloadit.php?file=/uploads/dir/file.mp3

它的作用是告诉浏览器将文件视为字节流,而不是浏览器通常根据文件扩展名执行的特定MIME类型。