我可以用PHP提供MP3文件吗?

时间:2009-10-04 15:26:26

标签: php security http-headers mp3

以与使用php提供图像的方式相同的方式,在CAPTACHAS等中使用,是否可以对音频文件执行相同的操作?

我试过这个

<?php

$track = "sometrack.mp3";

if(file_exists($track)) {
    header('Content-type: audio/mpeg');
    header('Content-length: ' . filesize($track));
    header('Content-Disposition: filename="sometrack.mp3"');
    header('X-Pad: avoid browser bug');
    header('Cache-Control: no-cache');
    print file_get_contents($track);
} else {
    echo "no file";
}

我正在使用Safari,它可以播放MP3文件。它正在将Safari推入正确的模式,我将Quicktime控件启动几秒钟,然后“无视频”。

我正在尝试保护文件免受未经授权的下载,以防您想知道我为什么要这样做。

2 个答案:

答案 0 :(得分:14)

您的内容处理应该是:

header('Content-Disposition: attachment; filename="sometrack.mp3"');

不确定这是不是问题。我还建议使用readfile输出文件:

readfile($rSong);

此外,使用详尽的Content-Type标头并设置Content-Transfer-Encoding也不会有害:

header("Content-Transfer-Encoding: binary"); 
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"); 

答案 1 :(得分:1)

尝试使用This Class它支持下载简历和速度限制相信我你需要它作为mp3下载网站的拥有者