我有一个带有音频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