就像可以使用 php 提供图像以用于验证码等一样,是否可以对音频文件执行相同的操作?
我试过这个
<?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 控件几秒钟,然后“无视频”。
我正在尝试保护文件免遭未经授权的下载,以防您想知道我为什么要这样做。
您的内容处置应该是:
header('Content-Disposition: attachment; filename="sometrack.mp3"');
但不确定这是否是问题所在。我还建议使用readfile https://www.php.net/manual/en/function.readfile.php输出文件:
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");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)