Kohana 3.2 — Попытка отправить TIFF-файл в php клиенту, но файл поврежден после загрузки

Я пытаюсь отправить файл TIFF из контроллера в Kohana Framework версии 3.2 (я знаю, что он немного устарел) с помощью метода response-> send_file (), файл загружен в браузер, и размер в порядке. но когда я пытаюсь просмотреть его, я получаю сообщение об ошибке, показывающее, что файл поврежден. Я загружаю тот же файл, используя ssh, и могу просматривать его без проблем. когда я сравниваю файлы в notepad ++, кодировка для рабочего файла — ANSI, а для поврежденного — utf-8-bom. это код для метода в моем контроллере:

public function action_file() {
$this->auto_render = false;
$path = '/tmp/test.tiff'
$this->response->send_file($path);
}

Я прочитал исходный код Kohana send_file и вижу, что он использует:

echo fread(...)

отправить файл клиенту.
Как изменить кодировку выходного буфера, чтобы файл был в формате ANSI (Windows-1252)?
Я старался

mb_http_output('Windows-1252');
mb_internal_encoding('Windows-1252');

безуспешно

-1

Решение

Я добавил ob_clean () перед отправкой файла и проблема решена. Кажется, где-то в моих кодах или структура базы была добавлена ​​в выходной буфер и файл был поврежден

public function action_file() {
$this->auto_render = false;
$path = '/tmp/test.tiff';
ob_clean();
$this->response->send_file($path);
}

Спасибо zerkms за упоминание сравнения файлов в шестнадцатеричном редакторе

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]