使用jplayer播放放置在根文件夹外的mp3文件

时间:2013-02-04 12:04:58

标签: php javascript .htaccess jplayer

我已经在网上搜索了一个解决方案,我发现其中一些涉及基于php的解决方案,如分块或其他涉及mod_xsendfile()等但我找不到确切问题的解决方案

问题在于:

我正在使用jplayer在我的网站上播放音乐。我想要的是当用户将一首歌添加到播放列表时,它会被添加到jplayer列表中(我已经测试过,没有问题,我是通过将JSON对象传递给java脚本来将该歌曲添加到播放列表(其中)还涉及传递完整的歌曲网址))但我不希望用户看到mp3的确切网址。或者即使他能够看到它,他也不能通过在浏览器中直接输入该URL来访问它,但是我可以下载。

我使用hostgator作为webhost,它为我提供了将我的文件放在root文件夹之外的权限,这可能是对godaddy等其他主机的限制,但它仍然不支持共享主机上的mod_xsendfile(),所以请避免相关答案那个。

我可以使用任何解决方案,无论我是需要将我的文件保存在root或其中,但我只想保护对文件的直接访问。

1 个答案:

答案 0 :(得分:1)

Jplayer需要一个返回原始MP3数据的URL。因此,它要么需要能够直接读取文件,要么以其他方式将文件发送给它。

此处的经典解决方案(没有像X-SendFile这样的系统)是一个PHP脚本,它检查相关权限,然后发送所需文件。如果某人没有权限,则可以发送不同的文件告诉他们,或以其他方式通知用户。

执行验证检查,然后,如果没问题,请使用文件路径调用http://php.net/readfile。它将从磁盘发送文件。您可能还需要首先为mime-type设置一些标题。