CakePHP принудительная загрузка ical - PullRequest
0 голосов
/ 28 января 2012

У меня есть следующее в файле макета;

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

Спасибо

Ash

Ответы [ 3 ]

1 голос
/ 28 января 2012

вы можете использовать новые функции запроса 2.0 для загрузки сразу:

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

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

Вы можете использовать file () и другие документированные способы обслуживания файлов - см.http://book.cakephp.org/2.0/en/controllers/request-response.html#cakeresponse

0 голосов
/ 26 августа 2015

Принятый ответ получил меня Method download does not exist.

Вот что сработало для меня:

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

Примечание request заменено на response.

Источник: class-CakeResponse.html .

0 голосов
/ 28 января 2012

Это потому, что "Content-Type: application / force-download" используется и не распознается вашим сервером HTTPd.Таким образом, ваш php-скрипт относится к неизвестному типу контента, и ваш браузер получил сигнал для загрузки файла и его сохранения:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...