我最近將我的站點從CakePHP 1.1遷移到1.3。CakePHP 1.3媒體視圖不能正確下載ZIP文件
我現在使用媒體視圖下載文件,但是,我有一個主要問題。
當我通過媒體視圖下載一個zip文件並嘗試提取它時,windows聲稱該文件是空的。如果我試圖預覽它,它說它是無效的。
- 的文件大小是正確的,大小相同的服務器
- 我可以從服務器通過FTP下載完全相同的文件,它是正確的
- 我可以通過媒體查看下載一個PDF文件,和它工作正常(但ZIP文件沒有)
這裏是我的控制器代碼:
$this->view = 'Media';
$downloadparams = array(
'id' => 'junkstuff'.'.zip',
'name' => 'junk3',
'download' => true,
'extension' => 'zip', // must be lower case
'path' => APP . 'tmp/files' . DS // don't forget terminal 'DS'
);
$this->set($downloadparams);
再次,如果我陳ge轉換爲pdf文件,並將「extension」更改爲「pdf」,這一切都可以正常工作。 Debug設置爲0。
我的代碼的用法是直接從1.3 Cakebook:http://book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Views.html
滑稽的是,他們用拉鍊作爲cakebook一個例子....
什麼可能我是做錯了什麼?
作爲參考,這個線程似乎是完全一樣的問題,但它沒有答案之一: when opened with winrar, Zip file obtained through Cakephp MediaViews reports Unexpected end of archive
順便提一下,tmp有一個常量:''path'=> TMP。 '文件'。 DS' – mark
謝謝,我不知道那一個。文件路徑正在工作,但爲了簡單起見,我改變了它。拉鍊仍然不起作用。 – dwlorimer
是的,這是無關的:)我從來沒有在1.3的zip文件的問題,但。我不知道什麼是錯的,特別是當其他(二進制)文件如PDF工作時。任何方式升級到2.x?然後,您可以刪除整個MediaView並使用乾淨的響應方法。 – mark