在數據庫中的blob下載頁面中,我將如何設置它以便不發送其他輸出?現在它發送標題,調試信息和頁腳。我怎樣才能做到這一點,以便所有這些都不是爲了那個觀點而發出的?沒有頁眉/頁腳的CakePHP頁面
2
A
回答
5
您可以創建一個清晰的佈局(如empty.ctp
)在你Layouts文件夾,只能用
<?php echo $content_for_layout ?>
,然後在你的行動,你會得到你的BLOB數據使用佈局
$this->layout = 'empty.ctp';
並且還禁用調試,在您的控制器中使用
Configure::write('debug',0);
如果您無法創建新的佈局,你可以試試這個。
$this->layout = null;
$this->render("view_name");
5
如果你使用這個下載文件,你應該使用Media
視圖在CakePHP
http://book.cakephp.org/view/1094/Media-Views
$this->view = 'Media';
$params = array(
'id' => 'example.zip',
'name' => 'example',
'download' => true,
'extension' => 'zip', // must be lower case
'path' => APP . 'files' . DS // don't forget terminal 'DS'
);
0
CakePHP的2.3用戶:
- 使用Sending files從書
CakePHP的2.x的用戶:
- 使用 '$這個 - > viewClass類' 而不是 '$這個 - >視圖'
複製粘貼準備好完整解決方案,就在任何控制器文件:
<?php
public function download($file) {
$fsTarget = APP.WEBROOT_DIR.DS.'files'.DS.$file; // files located in 'files' folder under webroot
if (false == file_exists($fsTarget)){
throw new NotFoundException(__('Invalid file'));
}
$pathinfo = pathinfo($fsTarget);
$this->viewClass = 'Media';
$params = array(
'id' => $file,
'name' => $pathinfo['filename'], // without extension
'download' => true,
'extension' => $pathinfo['extension'], // must be lower case
'path' => dirname($fsTarget) . DS // don't forget terminal 'DS'
);
$this->set($params);
}
何這有助於!
相關問題
- 1. 打印沒有頁眉和頁腳的頁面(通過代碼)
- 2. 添加一個沒有頁眉和頁腳的新頁面OpenXML
- 3. 提取頁面的頁眉和頁腳
- 4. 在wordpress中顯示沒有額外頁眉/頁腳/頁面的頁面
- 5. 褪色頁眉和頁腳沒有jquerymobile
- 6. ReportViewer - 修復頁面頁眉和頁腳
- 7. Cognos頁眉/頁腳
- 8. 頁腳到頁眉
- 9. 頁面頁眉內的時間腳本
- 10. jQuery Mobile:爲所有頁面使用相同的頁眉頁腳
- 11. 頁眉和頁腳的變化適用於所有子頁面
- 12. iTextSharp - 所有頁面的頁眉和頁腳
- 13. 如何抑制頁眉和頁面的頁面頁眉?
- 14. 在頁眉後面顯示頁腳
- 15. ScrollView的Overscroll頁眉/頁腳?
- 16. TCPDF - 僅在特定頁面上具有頁腳/頁眉
- 17. 頁面上的頁眉。 (wordpress)
- 18. 創建PHP頁眉/頁腳
- 19. 內容頁眉頁腳
- 20. 頁眉和頁腳徽標
- 21. 粘性頁眉和頁腳
- 22. 頁眉和頁腳在
- 23. pdfkit頁眉和頁腳
- 24. MS Excel XML頁眉頁腳
- 25. 頁眉和頁腳衝突
- 26. 通用頁眉和頁腳
- 27. 獲取UITableView頁眉/頁腳
- 28. PHP頁眉和頁腳
- 29. 頁眉和頁腳XSL FO
- 30. NSCollectionView與頁眉和頁腳
媒體視圖已棄用 - 在2.x中應該使用響應類作爲記錄的這些東西。 – mark 2012-11-30 08:52:50
嗨馬克,我會更新答案。即使2.3還沒有在主頁上發佈。至於我的代碼,這個方法被寫成looong :) – 2012-11-30 09:06:24
2.x!= 2.3(2.x = 2.0/2.1/2.2/2.3)。甚至在2.0中,你也可以使用響應類。 – mark 2012-11-30 09:51:34