如何使用PHP页面读取doc root之外的文件,但仍然不允许直接访问该文件

时间:2015-12-14 18:55:18

标签: php mp3

我根本不是PHP大师,但几年前我是一名前端网页设计师。我创建了一个使用this音频播放器播放MP3的页面。我想阻止用户直接下载MP3文件,所以我将它们放在文档根目录之外,并使用this脚本使用PHP加载文件。问题是任何人都可以输入脚本用来将文件调用到浏览器中以下载MP3的URL。

我尝试在调用MP3的PHP页面上放置一个变量,然后告诉文件调用脚本,如果变量不匹配,则将用户重定向回主页。因此,如果用户将脚本用于将文件调用到浏览器中的URL,则他们将重定向回主页。重定向有效,但带有实际变量的PHP页面似乎不允许PHP脚本在变量存在时调用MP3。

还有更好的方法吗?我非常非常熟悉PHP。

1 个答案:

答案 0 :(得分:0)

您需要某种用户身份验证。

例如,您可以为用户(具有用户名或ID)生成随机令牌(复杂的),并使用户根据歌曲的请求发送其令牌和ID。

在执行mp3流式处理的代码之前,检查令牌和ID的组合是否匹配,实际上它是否存在于数据库中。如果是这样,您可以继续播放mp3的流式传输/下载。