我剛剛從cakephp 1.1升級到1.3。除了創建和下載zip文件之外,我已將網站上的所有內容更新並且工作得很好。在CakePHP 1.3中正確創建zip文件並下載而不會留下視圖
這裏是我的accounts_controller.php代碼:
function zip() {
$this->checkSession();
$this->checkUpgradedAccount();
$files = array();
$this->layout="zip";
/*
code where I locate the files to zip, combine them, etc
*/
$tmp_file = "/home/[userdirectory]/tmp/".md5(mktime()).".zip"; //directory name edited
$command = "/usr/bin/zip -j $tmp_file ".implode(" ",$zip_files);
exec($command);
foreach($zip_files as $zf) {
unlink($zf);
}
$file_path = $tmp_file;
$this->set("path",$file_path);
$this->render();
}
當我把這個動作,但是,我得到一個錯誤:
Error: The requested address '/accounts/zip' was not found on this server.
它在1.1版本的工作只是這樣。我假設一些事情已經發生了變化,但我不確定是什麼,也無法在文檔中找到任何相關的內容。
的zip.ctp視圖文件確實存在,但它什麼也沒有比其他:<?php ?>
我懷疑的東西是不同的佈局。/layouts目錄中沒有「zip.ctp」。但是,我已將該行更改爲$this->layout('default');
,並呈現出一個空白頁面,但沒有錯誤,也沒有下載。
請指導我以正確的方式下載我的壓縮文件在蛋糕1.3。提前致謝。
謝謝,我想知道是否可能有多個。謝謝你的鏈接。我錯過了 - 它看起來非常有幫助。如果我使用我的「默認」佈局,該課程是否會讓我的網頁無法進入/ zip?我希望它保持在同一頁面上,並只下載文件。 – dwlorimer
假設您沒有在一種佈局中插入一些不尋常的代碼,您使用的佈局應該不會影響控制器或模型邏輯會發生的情況。所以我會認爲你可以使用或者很好。 – Kai
謝謝 - 媒體觀點似乎很好。我可以下載PDF文件。但是,當我嘗試下載.zip文件時,文件大小是正確的,但是當我嘗試解壓縮時,Windows說它是空的。如果我通過ftp(而不是瀏覽器)下載完全相同的文件,那很好。有任何想法嗎?如果需要,我可以發佈一個新問題。 – dwlorimer