私は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'
)
);
私は長い間、この問題を解決しようとしています。どんな助けもありがとう。このことについては本当にわからない
私は両方を試しました。拡張子なしの名前とmimeType。しかし、ファイルをダウンロードすると、破損します。たとえば、PDFをダウンロードしてそのコンテンツを表示すると、「Adobe Readerは正しいファイルではないか、または破損しているため、を開くことができませんでした(電子メールの添付ファイルとして送信され、正確に解読されていない)。どのような種類のファイルでも完全にローカルで動作しますが、ホストプロバイダでは動作しません。助けてください?私は何をすべきかわかりません? –
ivantxo
私の推測では、コードに何か問題があり、それがpdfファイルとしてダウンロードされているというエラーメッセージを送信しているということです。これを試してください:あなたのコードを実行し、 "例えば"のようなpdfファイルをダウンロードし、それをメモ帳やテキストエディタで開こうとすると、おそらくhtmlコードとエラーメッセージが表示されます。 – pleasedontbelong
私の遅い返事には申し訳ありません。ありがとうございました。 Notepad ++では、セキュリティ上の理由からset_time_limit()が無効になっています。それから、phpinfo()を実行しました。実際には、disable_functionsセクションでは、set_time_limit()は無効になっています。これがエラーの原因になりますか?私に何ができる? – ivantxo