Кракозябры при использовании метода file_save_from_url в 2.4.0
Есть сайт на 2.4.0, есть парсер, он использует для копирования картинок метод file_save_from_url из \system\libs\files.helper.php При копировании картинки этим методом сервер зачем-то выводит ее на экран
И ладно бы проблема была только с картинками. Не устанавливаются дополнения в админке. После ввода реквизитов фтп получаем либо
либо опять таки кракозябры...
Проблема наблюдалась и в 2.3.0, обновлялись вручную.
С чем это может быть связано? Есть мысли? Кривая работа библиотеки curl?
Вероятно, если у вас в этот момент юзается CURL, то не устанавливается по какой то причине опция CURLOPT_RETURNTRANSFER.При копировании картинки этим методом сервер зачем-то выводит ее на экран
Либо file_get_contents так странно себя ведет.
он используется в методе file_save_from_urlВероятно, если у вас в этот момент юзается CURL
function file_save_from_url($url, $destination){ } return true; }
public function copyPoster($fcode){//копируем картинку в папку poster по годам $dest = $this->createPosterDir(); file_save_from_url('http://st.kp.yandex.net/images/film_big/'.$fcode.'.jpg',$dest.$fcode.'.jpg'); return $dest.$fcode.'.jpg'; }
function file_save_from_url($url, $destination){ } return true; }
Получается как раз ручками к типу контента изображения добавляются (они лежат в папка с владельцем www), а в папку poster скрипт ничего скопировать не может (у нее владелец сам пользователь панели управления)…
www — это пользователь, под которым работает апач у вас. в папку poster копирование должно работать, т.к. на нее права 777. а вот если внутри еще папки создаются, то проверяйте какие права на них получаются.Получается как раз ручками к типу контента изображения добавляются (они лежат в папка с владельцем www), а в папку poster скрипт ничего скопировать не может (у нее владелец сам пользователь панели управления)
Нагуглил. Надо добавитьна деле получается 755. Пинать техподдержку сервера?
В php есть функция umask() которая может сбросить этот показатель в ноль. Показатель umask восстанавливается после завершения скрипта.
Но лучше использовать функцию chmod после вызова mkdir.