我有一個帶有音頻Flash播放器的頁面,可以傳輸多個mp3文件。此播放器使用包含所有這些文件路徑的XML文件,這些文件位於webroot目錄中的音頻文件夾中。CakePHP:用Flash播放器流式傳輸的MP3文件的媒體視圖
我不喜歡的是,用戶到達XML文件(它也位於webroot目錄中)並查看mp3文件的路徑非常簡單,然後下載它們而不是僅僅使用Flash播放器。
我見過CakePHP有一些東西叫做媒體視圖,在這裏你可以在webroot之外設置一個文件夾並將文件放在那裏,這樣用戶就不能自由地訪問它們。 Cake的網站(http://book.cakephp.org/view/1094/Media-Views)中的解釋主要集中在要下載的文件上,但我想知道是否可以使用媒體視圖來將我的mp3文件與音頻播放器不會讓用戶下載。或者如果有沒有媒體視圖的任何其他替代方案,也可以工作:)
非常感謝!
澄清
這是我使用,我想更改代碼:
- 在我的控制器:
function index() {}
- 在我看來, (index.ctp):
<embed type="application/x-shockwave-flash" flashvars="audioUrl=/audios/01 Track 01.mp3" src="audio-player.swf"></embed>
=>如何更改媒體視圖,以便我的mp3文件位於文件夾app/audios而不是app/webroot/audios中?
這是我已經試過:
- 以我控制器(streams_controller.php):
function index() {}
function getFile() {
$this->view = 'Media';
$params = array(
'id' => '01 Track 01.mp3',
'name' => '01 Track 01',
'download' => false,
'extension' => 'mp3',
'path' => APP . 'audios' . DS,
'cache' => true
);
$this->set($params);
}
- 我認爲(index.ctp):
<embed type="application/x-shockwave-flash" flashvars="audioUrl=/streams/getFile" src="audio-player.swf"></embed>
仍然沒有運氣!我究竟做錯了什麼?
我已經嘗試在下載鍵中顯示'false',但下載對話框仍然出現,只是要求下載頁面而不是文件。 – Albert