2012-10-16 42 views
1

我正在音樂門戶網站上音樂家可以上傳他的音樂。音樂下載通過付款process.I使用JPlayer播放音樂。JPlayer媒體文件訪問

jplayer任何人都可以藉助視圖源和直接下載文件來查看音樂文件的路徑。

如何防止文件直接訪問。我試圖通過.htaccess來完成,但音樂無法播放。

爲什麼它不工作

RewriteEngine on 

RewriteCond %{HTTP_REFERER} !^http://(www\.)?abc.com/trakvanapp/ [NC] 

RewriteCond %{HTTP_REFERER} !^http://(www\.)?abc.com/trakvanapp/.*$ [NC] 

RewriteRule \.(mp3)$ - [F] 

感謝。

回答

0

該文件需要公開訪問才能在jPlayer(或任何其他HTML5音頻播放器)中播放。一個重寫規則不會有太大的好處,因爲這個文件仍然可以從重寫的URL中訪問(如果不是,它將不會在w/jplayer中工作)。

我已經能夠想到的最好的解決方案是隱藏腳本中的文件名 - 非常低的技術,但它會保持99.9%的用戶發現直接的URL。很多人都很好奇,能夠查看源代碼並尋找鏈接,但如果它比這更復雜,大多數人都不會感到困擾。

所以文件在http://example.com/randomdirectoryname123/123random/mysong.mp3我用:

var p1="http://"; 
var p3="randomdirectoryname123"; 
var p2="example"; 
var p4="123random"; 
var thefile="mysong"; 
var thelink = p1 + p2 + ".com/" + p3 + "/" + p4 + "/" + thefile + ".mp3"; 

... 

$(this).jPlayer("setMedia", { 
      mp3:thelink 
     }); 

顯然,這不是傳送文件的實際安全的方法 - 只是隱藏它的位置從喬吹好。