我确定这是一个简单的任务,但在我的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>
答案 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类型。