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

Playing mp3 files placed outside root folder using jplayer

本文关键字:mp3 文件 根文件夹 jplayer 播放 使用      更新时间:2023-09-26

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

问题是:

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

我使用hostgator作为网络主机,它为我提供了将文件放置在根文件夹之外的访问权限,这可能对godaddy等其他主机有限制,但它仍然不支持共享主机上的mod_xsendfile(),因此请避免回答与此相关的问题。

我对任何解决方案都很满意,无论我需要将文件保存在根目录之外还是内部,但我只想保护对文件的直接访问。

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

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

执行验证检查,如果可以,请致电http://php.net/readfile带有文件的路径。它将从磁盘发送文件。您可能还需要先为mime类型设置一些标头。