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

时间:2012-03-14 06:50:13

标签: cakephp cakephp-1.3

我有CakePHP 1.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);
        }
    }

任何想法?请指教。

3 个答案:

答案 0 :(得分:0)

检查media.ctp文件是否必须为空...以获得正确的输出... 感谢

答案 1 :(得分:0)

检查我自己的工作代码,我看到的唯一区别是

$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);

}

答案 2 :(得分:0)

也许:

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