2013-03-15 153 views
3

我正在制作一个在线流媒体网站,用户可以在其中收听音频或视频文件。目前我正在使用下面的代码在音频标签中调用一个mp3文件。如何通过URL直接访问文件来防止下载?

<a href="www.domain.com/path-to-audio/file.mp3">Play</a> 

在我的网站上,用户可以流式播放歌曲,但无法下载。下载支付。以上代码是流式传输音频文件最糟糕的情况,因为当用户在浏览器上复制并粘贴上述链接时,歌曲将被下载。

如何在没有URL下载选项的情况下安全地流式传输文件(用户无法复制歌曲URL并下载它)。

我使用的是CodeIgniter(PHP框架),所以如何限制用户直接下载文件。

+0

使用'htaccess'。 – 2013-03-15 10:41:01

+0

在Stackoverflow上检查[this](http://stackoverflow.com/questions/6040625/play-audio-file-without-downloading-it)问题。 – Hemanth 2013-03-15 10:42:12

+1

实际上有关的东西; http://stackoverflow.com/questions/11486191/php-stream-mp​​3-file/http://stackoverflow.com/questions/3408927/how-do-i-prevent-direct-access-download-to-mp3- wav-files-while-allow-a-flash – 2013-03-15 10:51:22

回答

1

您可以使用一些.htaccess将所有下载请求指向您的PHP脚本,而不是调用真实文件。然后你的脚本可以验证用户是否登录,只有这样它才会发出下载响应。否则,即使有人得到的网址,它不会为他们工作,因为请求去你的PHP脚本和文件本身不会自动提供

+0

所以你的意思是说,而不是直接文件链接,我将它重定向到一个PHP页面,在那里它会检索歌曲的实际路径并将其发送回去? – SunnyD 2013-03-15 10:49:40

+0

我有同样的问题,使用htaccess是好的,但是当文件存储在CDN中,然后htaccess的功能? – 2013-03-15 10:50:02

+0

@SunnyD是的,这是真的 – 2013-03-15 13:42:26