sendFile

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
JSimon
Сообщения: 21
Зарегистрирован: 2017.07.13, 18:35

sendFile

Сообщение JSimon »

Всем привет, столкнулся с такой проблемой на сервере есть лежит файл с расширение .сfe , при попытке скачать его напрямую к примеру
/frontend/web/files/файл.cfe он скачивается без проблем и не ломается, при скачивание через Yii::$app->response->sendFile(); он его ломает и отдаёт изменённый файл при попытке запустить файл пишет не верный формат файл, кто подскажет в чём может быть проблема
JSimon
Сообщения: 21
Зарегистрирован: 2017.07.13, 18:35

Re: sendFile

Сообщение JSimon »

Нюанс, на локальном сервере отдаёт не сломанный, на сервере ломает
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: sendFile

Сообщение Nex-Otaku »

Возможно, профайлер засоряет его. Отключите отладочную панель и попробуйте ещё раз.
JSimon
Сообщения: 21
Зарегистрирован: 2017.07.13, 18:35

Re: sendFile

Сообщение JSimon »

Не помогло к сожаления, вообще ума не приложу в чём может быть проблема, может быть проблема в https ?
JSimon
Сообщения: 21
Зарегистрирован: 2017.07.13, 18:35

Re: sendFile

Сообщение JSimon »

На хостинге тоже работает нормально, но на своем серевере под ubuntu ломает, может какаято деректива отключена в php ini или конфиг сервера, ни кто не знает что может быть ?
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: sendFile

Сообщение Alexum »

Что с размером файлов? Вы пытались посмотреть на содержимое "побитого" файла? Попробуйте сверить файлы по содержимому.
JSimon
Сообщения: 21
Зарегистрирован: 2017.07.13, 18:35

Re: sendFile

Сообщение JSimon »

Размер не меняется, содержимое немного отличается.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: sendFile

Сообщение Nex-Otaku »

Копайте тогда в исходники, смотрите код, который используется в sendFile, и пробуйте написать аналогичный рабочий. Если у вас заработает, значит, что-то неправильно либо в коде фреймворка, либо в настройках фреймворка.
JSimon
Сообщения: 21
Зарегистрирован: 2017.07.13, 18:35

Re: sendFile

Сообщение JSimon »

Проблему решил, может кому пригодится,

перед вызовом Yii::$app->response->sendFile(); добавил конструкцию:

if (ob_get_level()) {
ob_end_clean();
}
kikimarik
Сообщения: 1
Зарегистрирован: 2019.10.07, 10:35

Re: sendFile

Сообщение kikimarik »

JSimon писал(а): 2017.12.25, 15:27 Проблему решил, может кому пригодится,

перед вызовом Yii::$app->response->sendFile(); добавил конструкцию:

if (ob_get_level()) {
ob_end_clean();
}
Огромное спасибо! Также помогло для метода sendContentAsFile()
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: sendFile

Сообщение yiijeka »

Так это локальная проблема или баг фремворка?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: sendFile

Сообщение yiiliveext »

yiijeka писал(а): 2019.10.07, 11:15 Так это локальная проблема или баг фремворка?
Альтернативное решение проблемы топикстартера - в php.ini нужно установить output_buffering в 0
For users confused about getting "1" as a return value from ob_get_level at the beginning of a script: this likely means the PHP ini directive "output_buffering" is not set to off / 0. PHP automatically starts output buffering for all your scripts if this directive is not off (which acts as if you called ob_start on the first line of your script).
Ответить