2012-01-28 141 views
0

我在佈局文件中有以下內容;cakePHP強制下載文件

<?php 
$Filename = "TheEvent.vcs"; 
header("Content-Type: application/force-download"); 
header("Content-Disposition: inline; filename=$Filename"); 
echo $content_for_layout; 
?> 

現在在控制器中,我已經定義了這個佈局,它正在工作,因爲我可以看到我的文件的文本。唯一的問題是下載沒有被強制在客戶端上。

我也跟着下面的指南雖然我使用CakePHP 2.0

http://labs.iamkoa.net/2007/09/07/create-downloadable-ical-events-via-cake/

感謝

回答

1

您可以使用新的2.0要求的功能馬上下載:

$this->response->download($filename); 

http://www.dereuromark.de/2011/11/21/serving-views-as-files-in-cake2/

您可以使用文件(),並提供文件服務的其他書面方式 - 看http://book.cakephp.org/2.0/en/controllers/request-response.html#cakeresponse

+0

完美。感謝您的答覆。 – AshHimself 2012-01-28 14:10:03

+0

不知道爲什麼,但它顯示''方法下載不存在'而$ $ - >響應 - >下載($文件名);'工作[很好](http://api.cakephp.org/2.0/類CakeResponse.html)。注意'request'替換爲'response'。 – 2015-08-26 16:20:30

+0

@TheSexiestManinJamaica你說得對,我糾正了它。 – mark 2015-08-27 20:43:43

0

這是因爲「內容類型:應用程序/力下載」被使用且不被HTTPd服務器識別。 因此,你的PHP腳本是一個未知類型的內容和瀏覽器得到了信號,下載文件並保存:)

0

接受的答案讓我Method download does not exist

下面是我工作:

$this->response->download($filename); 

requestresponse取代。

來源:class-CakeResponse.html