2011-07-12 11 views
0

私はCakePHPで始まります。ドキュメントがサーバーにアップロードされた後、ユーザーはダウンロードしようとしますが、ファイルが破損します。CakePHP 1.3メディアビューではダウンロード時にファイルが破損する

何が起こる可能性がありますか?私は私のウェブサイトのcPanelを通してファイルをチェックし、それは完璧です。この問題は、ユーザーがダウンロードしようとしたときにのみ発生します。

function download() { 
    $file = //here I get the file 
    $loca = //here I get its location 

    if (!empty ($file)) { 
     $file_info = pathinfo($file); 

     $this->view = 'Media'; 
     $params = array( 
      'id'  => $file, 
      'name'  => $file, 
      'extension' => $file_info['extension'], 
      'download' => true, 
      'path'  => APP . WEBROOT_DIR . DS . $loca . DS 
     ); 
     $this->set($params); 
    } else { 
     $this->redirect($this->referer()); 
    } 
} 

そして、私の見解では:私の要件コントローラで

echo $html->link(
    'Download', array(
     'controller' => 'requirements', 
     'action'  => 'download' 
    ) 
); 

私は長い間、この問題を解決しようとしています。どんな助けもありがとう。このことについては本当にわからない

答えて

0

うーんイムは問題です...しかしMedia Viewsについてのドキュメントは言う:

名 -名前がに送信されるように、あなたが別のファイル名を指定することができますユーザー。ファイル名の末尾にを付けずにという名前を指定します。

、あなたはMIMEタイプを追加することでもない...デバッグ用core.phpの中にあなたの設定は何も設定されている場合、メディアプラグインが動作しない

グッドラック

+0

私は両方を試しました。拡張子なしの名前とmimeType。しかし、ファイルをダウンロードすると、破損します。たとえば、PDFをダウンロードしてそのコンテンツを表示すると、「Adobe Readerは正しいファイルではないか、または破損しているため、を開くことができませんでした(電子メールの添付ファイルとして送信され、正確に解読されていない)。どのような種類のファイルでも完全にローカルで動作しますが、ホストプロバイダでは動作しません。助けてください?私は何をすべきかわかりません? – ivantxo

+0

私の推測では、コードに何か問題があり、それがpdfファイルとしてダウンロードされているというエラーメッセージを送信しているということです。これを試してください:あなたのコードを実行し、 "例えば"のようなpdfファイルをダウンロードし、それをメモ帳やテキストエディタで開こうとすると、おそらくhtmlコードとエラーメッセージが表示されます。 – pleasedontbelong

+0

私の遅い返事には申し訳ありません。ありがとうございました。 Notepad ++では、セキュリティ上の理由からset_time_limit()が無効になっています。それから、phpinfo()を実行しました。実際には、disable_functionsセクションでは、set_time_limit()は無効になっています。これがエラーの原因になりますか?私に何ができる? – ivantxo

0

それを追加してみてくださいされていませんおそらく、デバッグモードのために設定されていれば、ビューのレンダリングとは何か関係があります。

+1

これは動作していないようです... – shadyyx

関連する問題