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

2024-01-05

就像可以使用 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(使用前将#替换为@)

我可以使用 PHP 提供 MP3 文件吗? 的相关文章

随机推荐