2012-03-14 100 views
0

我有CakePHP 1.3,我有一個應該查看文件的操作,該文件可能是.pdf,.doc,....或任何文檔,但我取而代之的是一個空白頁。通過媒體視圖CakePHP視圖文件不起作用

代碼示例:

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

什麼想法?請指教。

+0

你能爲$ PARAMS添加調試()?驗證你的路徑是否正確。來自媒體視圖的404錯誤通常實際上是在媒體視圖無法找到有問題的文件時觸發的。 – 2012-03-18 05:14:55

回答

0

檢查media.ctp文件必須是空白......得到正確的輸出... 感謝

+0

也是,同樣的結果:( – 2012-03-16 23:33:38

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

} 
+0

我也試過這個,刪除$ this-> autoRender = false;並確保沒有它的視圖文件,然後我得到一個Not Found屏幕 – 2012-03-14 18:27:26

+0

嗯,只有兩個其他的想法: - 刪除'mimetype'這一行 - 把一條艱難的'路徑' – olaurendeau 2012-03-14 19:02:16

0

可能:

Configure::write('debug', 0); 
相關問題