我目前正在使用cakephp,並且正在生成一個word文檔。我的問題是如何將生成的文檔放在我的web根目錄下,而不是下載。CakePHP生成一個文件到Webroot
-1
A
回答
0
我猜你正在使用一個動作來生成一個文檔,該文檔被輸出到瀏覽器。
您應該使用output buffering來「捕捉」輸出,然後將其寫入文件,或將文檔數據寫入字符串,然後將該字符串寫入服務器上的文件。編輯: PHPWord有一個SAVE方法。在您的操作中,您可以將文檔保存到某個位置,但輸出其他內容,即成功通知。這樣一來,你的行動只生成文件:
public function generateWordDocument(){
//... your word file creation...
$wordDocumentLocation = TMP . 'word_files/';
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save($wordDocumentLocation . 'helloWorld.docx');
$this->Session->setFlash('Document generated!');
$this->redirect(array('action'=>'index')); //or wherever you want
}
如果你要保護的文件,你可以將文件保存到一個「安全」的文件夾(這可以是「應用程序之外的文件夾/根目錄」文件夾,或拒絕所有指令),比使用其他動作,就像保護的.htaccess文件夾‘getWordDocument’:
function getWordDocument($documentName){
$wordDocumentLocation = TMP . 'word_files/';
if (file_exists($wordDocumentLocation . $documentName)) { //this is not really the safest way of doing it
$fp = fopen($wordDocumentLocation . $documentName, 'rb');
header("Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document");
header("Content-Length: " . filesize($wordDocumentLocation . $documentName));
fpassthru($fp);
exit();
}
}
請注意,這個代碼僅僅是‘抓’的概念,並在沒有辦法安全或最佳。
0
我想你想添加文件根目錄,但無法下載的大衆用戶,
您有幾種方法:
- 保護文件夾與的.htaccess(像的js文件夾)
- 創建應用程序的新文件夾文件夾像根目錄,並把文件放在它
- 使用調度器在CakePHP中:http://book.cakephp.org/2.0/en/development/dispatch-filters.html
和....
相關問題
- 1. CakePHP無法找到webroot/css/js文件
- 2. cakephp將文件放在webroot之外
- 3. 我怎樣才能路由到app/webroot文件夾? (CakePHP)
- 4. 路由到Cakephp的App/Webroot中的文件夾
- 5. 如何讀取CakePHP中webroot子文件夾內的文件?
- 6. 將TinyMCE Tinybrowser直接上傳到CakePHP webroot
- 7. CakePHP - 插件無法識別webroot foler
- 8. cakephp URL擺脫/ app/webroot
- 9. CakePHP使用/app/webroot/index.php/
- 10. CakePHP Minify插件並拒絕訪問webroot下的原始文件
- 11. CakePhp從字符串生成XML文件
- 12. 如何在CakePHP中生成.po文件?
- 13. 這是可能共享一個webroot多個cakephp應用程序?
- 14. 在CakePHP中生成一個隨機數?
- 15. 第一個文件加載到cakephp中
- 16. 在CakePHP的我的app/webroot/blog文件夾中安裝Wordpress
- 17. 無法在webroot/js/cakephp中執行php文件
- 18. 刪除博客文件夾名稱時保持wordpress內cakephp webroot
- 19. 訪問位於/ app/webroot/files中的excel文件cakephp
- 20. 在cakephp中的webroot和鏈接html的css文件
- 21. 打開瀏覽器中的webroot的pdf文件cakephp
- 22. CakePHP試圖通過AssetsController加載webroot/assets中的JS文件
- 23. 在cakephp的webroot/img文件夾之外上傳圖片
- 24. CakePHP:如何允許公衆訪問/ webroot目錄中的文件
- 25. RewriteRule webroot到文件系統路徑
- 26. 將文件上傳到webroot之外
- 27. 擴展生成文件生成一個庫和文檔與doxygen
- 28. 在一個生成文件中生成多個版本
- 29. 後生成行到生成文件
- 30. 帶Jetty的多個webroot文件夾
您的問題是過於空泛。您應該更多地解釋或複製一些代碼示例。 –