2012-03-14 17 views
0

私はCakePHP 1.3を持っていますが、ファイルを表示するはずのアクションがあります。そのファイルは.pdf、.doc、....または任意のドキュメントですが、代わりに空白のページを取得します。Media View経由の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); 
     } 
    } 

任意のアイデア?お知らせ下さい。適切な出力を得るためにmedia.ctpファイルが空白でなければならないこと

+0

あなたは$のparamsのために)(デバッグを追加することはできますか?パスが正しいことを確認します。メディアビューからの404エラーは、問題のファイルを見つけることができない場合、メディアビューによって実際にトリガされます。 –

答えて

0

チェック... ... おかげで自分の作業コードにチェック

+0

また、同じ結果:( –

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を削除してみましたが、ビューファイルがないことを確認したら、見つからない画面が表示されます。 –

+0

Hum、just two others ideas : - 'mimetype'行を削除する - ハードなパスを入れる – olaurendeau

0

多分:

Configure::write('debug', 0); 
関連する問題