CakePHP - Как вы сообщаете действия контроллера для вывода необработанного заголовка изображения? - PullRequest
1 голос
/ 11 июля 2011

Я перекодирую существующий проект с использованием фреймворка CakePHP. Теперь в моем существующем коде у меня есть PHP-файл (так называемый thumb.php), который принимает файл и его размер и выдает необработанное необработанное изображение в браузер. Это может затем использоваться, например, в теге изображения или для других целей. Этот файл «thumbs.php» просто использует заголовок («Content-Type: image / jpeg»); для вывода необработанного изображения.

В любом случае, вот оно в действии: http://www.dosspirit.net/php/thumb.php?file=268-transport-tycoon-deluxe-3.png&size=640

(Вы можете изменить параметр размера на 240 или даже 1240, и размер изображения будет изменен для вас).

Теперь я хочу повторить это поведение в cakephp.

Пока у меня есть эта настройка:

class ScreenshotController extends AppController {
    public function view() {
        (Some code to handle image scaling)
    }
}

Глядя на приведенный выше код, URL-адреса скриншота выглядят так: http://www.domain/screenshot/view/268-transport-tycoon-deluxe-3.png/640

Теперь, как я могу сказать контроллеру в cakePHP выводить заголовок изображения вместо просмотра и т. Д., Следовательно, имитируя функциональность из файла thumbs.php?

Любой ответ приветствуется,

искренне, - баккелун

1 Ответ

2 голосов
/ 11 июля 2011

В CakePHP все еще есть PHP.Вы можете сделать то же самое в своем действии:

public function view() {
    header('…');
    echo $imageData;
    exit();
}

Сказав это, вы должны использовать метод Controller::header для вывода необработанных заголовков (для переопределенных модульных тестов).Более того, вы должны использовать Просмотр мультимедиа для вывода изображений Cake Way (хотя для этого необходимо записать в файл).

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