0

我有一个应用程序,用户可以上传图像,并且应该能够回显和播放视频。我的上传功能工作正常,但我现在面临的挑战是回显和播放视频。这是我上传文件的方式

function uploadFile() {
    $file = $this->data['CpdVideo']['file'];
    if ($file['error'] === UPLOAD_ERR_OK) {
        $id = String::uuid();
        if (move_uploaded_file($file['tmp_name'], WWW_ROOT . 'files/videos/' . $file['name'])) {
            $this->request->data['CpdVideo']['filename'] = $file['name'];
            $this->request->data['CpdVideo']['filesize'] = $file['size'];
            $this->request->data['CpdVideo']['filemime'] = $file['type'];
            return true;
        }
    }
    return false;
}

这是我保存视频的方式

if ($this->uploadFile() && $this->CpdVideo->save($this->data))

这就是我在 view.ctp 中回显和播放视频的方式。请不要编辑此代码,现在这对我有用

<object width="100" height="100">
<param name="movie" value="<?php echo $this->Html->url('/files/videos/'. $cpdVideo['CpdVideo']['filename'])?>">
<embed src="<?php echo $this->Html->url('/files/videos/'. $cpdVideo['CpdVideo']['filename'])?>" width="100" height="100">
</embed>
</object> 

如果有人可以帮助我,那就太棒了

4

1 回答 1

0

尝试修改这一行

<?php echo $this->Html->media('files/videos'. $cpdVideo['CpdVideo']['filename'], array('fullBase' => true)); 

<?php echo $this->Html->media('files/videos'. $cpdVideo['CpdVideo']['filename'], array('fullBase' => true, type="audio/ogg")); 

其中 ogg 是该文件的文件类型。问题是如果没有该文件类型,那么某些浏览器会将其从您的 html 中删除(如果您查看页面源代码,您可能会发现您的音频标签坐在那里)。

我不知道 CakePHP 是否提供了某种猜测文件类型的方法,但值得研究一下。我希望我已经为您指明了正确的方向。

于 2013-02-28T09:01:26.777 回答