我正在使用cakephp 2.x我想在浏览器中播放音频和打开图像....
在我的“视图”中,我有以下代码正确显示文件名,并显示下载链接并且文件已成功下载
<?php echo $this->Html->link('Download', array('controller' => 'bugshot', 'action' => 'download', $files['Audio']['filename']));?>
现在我想播放这个音频文件..我在页面上有两个舔,,,首先是下载,另一个是观看或播放
在我的控制器中,我有以下代码正在下载文件
public function download($filename) {
$idUser = $this->Auth->user('idUser');
$folder_url = APP.'uploads/'.$idUser.'/'.$filename;
$this->response->file($folder_url, array('download' => true, 'name' => $filename));
return $this->response;
}
答案 0 :(得分:1)
通过Cake提供的文件可以通过以下类似的功能完成:
public function download($filename) {
$download = !empty($_GET['download']); // <- example
$idUser = $this->Auth->user('idUser');
$folder_url = APP.'uploads/'.$idUser.'/'.$filename;
$this->response->file($folder_url, array('download' => $download, 'name' => $filename));
return $this->response;
}
请求网址/.../this-file.mp3
的方式将提供该文件,而网址/.../this-file.mp3?dowload=1
将下载该文件。
提供音频的最简单方法是使用audio tag:
<?php
$url = Router::url(array('controller' => 'x', 'action' => 'download', $name));
$download = Router::url(array('controller' => 'x', 'action' => 'download', $name, '?' => array('download' => 1)));
?>
<audio src="<?= $url; ?>" controls>
<!-- alternate content for unsupported case -->
Download <a href="<?= $download ?>">Download it</a>;
</audio>
作为一个相对较新的标记,支持不是通用的 - 请参阅Detailed article on support或其他资源,以获取有关如何处理不支持此标记的浏览器的更多信息。
或者,使用现有的众多基于闪存的媒体播放器之一。