2012-01-28 4 views
0

나는 레이아웃 파일에서 다음을 가지고있다;cakePHP 강제 다운로드 ical

<?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/

당신은 파일() 파일을 제공하는 다른 문서화 된 방법을 사용할 수 있습니다 - 허용 된 대답은 나를 Method download does not exist있어 http://book.cakephp.org/2.0/en/controllers/request-response.html#cakeresponse

+0

Perfect. 귀하의 회신에 감사드립니다. – AshHimself

+0

그 이유는 모르겠지만,'$ this-> response-> download ($ filename); 동안'Method download does not exist'를 보여주었습니다. (잘 됐네요. (http://api.cakephp.org/2.0/) 클래스 -CakeResponse.html). 'request'는'response'로 대체되었습니다. –

+0

@ TheSexiestManinJamaica 당신 말이 맞았습니다. – mark

0

를 사용하고 있지만

나는 다음과 같은 가이드를 따라이 인 때문에 "콘텐츠 형식 : 응용 프로그램/강제 다운로드"이 사용되고 HTTPd 서버에서 인식되지 않습니다. 따라서 당신의 PHP 스크립트는 내용의 알 수없는 유형과 브라우저가 파일을 다운로드하고

0

참조하십시오.

여기에 나를 위해 일한 내용은 다음과 같습니다

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

requestresponse로 대체.

출처 : class-CakeResponse.html.