通过媒体视图查看CakePHP文件不起作用

通过媒体视图查看CakePHP文件不起作用,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我有CakePHP1.3,我有一个动作,应该是查看一个文件,这个文件可能是.pdf、.doc、。。。。或者任何文件,但我得到的是一张空白页 代码示例: public function view_attachments($attachment_id){ $attachment = $this->get_attachment($attachment_id); if($attachment){ $path = pathinfo($attac

我有CakePHP1.3,我有一个动作,应该是查看一个文件,这个文件可能是.pdf、.doc、。。。。或者任何文件,但我得到的是一张空白页

代码示例:

public function view_attachments($attachment_id){
        $attachment = $this->get_attachment($attachment_id);
        if($attachment){
            $path = pathinfo($attachment['EmailAttachment']['file']);
            $this->view = 'Media';
            $this->autoRender = false;
            $params = array(
                'id' => $path['basename'],
                'name' => $path['filename'],              
                'download' => false,
                'mimeType'=> $this->Common->get_mime_content_type($path['basename']),          
                'extension' => strtolower($path['extension']),  // must be lower case              
                'path' => APP . $path['dirname'] . DS   // don't forget terminal 'DS'       
            );       
            $this->set($params);
        }
    }

有什么想法吗?请通知。

检查media.ctp文件必须为空。。。要获得正确的输出。。。
感谢检查我自己的工作代码,我看到的唯一区别是

$this->autoRender = false;
当然,您不应该拥有view_attachments.ctp文件

请注意,浏览器无法以本机方式打开.doc。所以即使你想让他展示,他也会让你下载

function download($id) {

    $data = $this->OdmPieceJointe->read(null, $id);
    $path = pathinfo($data['OdmPieceJointe']['fichier']);

    $this->view = 'Media';
    $params = array(
        'id' => $path['basename'],
        'name' => $path['filename'],
        'download' => false,
        'extension' => $path['extension'],
        'path' => 'uploads/',
        ); 

    $this->set($params);

}
也许:

Configure::write('debug', 0);

我也尝试过这样做,删除$this->autoRender=false;确保没有视图文件,然后我会看到一个找不到的屏幕。嗯,还有两个想法:-删除'mimetype'行-放置一个硬的'path',你能为$params添加调试吗?验证您的路径是否正确。当媒体视图找不到有问题的文件时,媒体视图通常会触发404错误。