@maxyc_webber
Web-программист

Bitrix: Что неправильно делаю с CFile::ResizeImageGet?

Последнее время отпали делаться превью. Не могу разобраться по какой причине.
Изображения грузятся по апи из вне.

Методом тыка пришел к этой строке:
CFile::ResizeImageGet($array["DETAIL_PICTURE"], array('width'=>100, 'height'=>100), BX_RESIZE_IMAGE_PROPORTIONAL, true);

Данный метод должен возвращать массив с ссылкой на изображение и его размеры. но он не возвращает ничего.
в массиве 100% лежит CFile::MakeFileArray(...)
файл есть и имеет доступ на чение и даже запись. Доступы к аплоадс так же проверил.
  • Вопрос задан
  • 10723 просмотра
Решения вопроса 2
@maxyc_webber Автор вопроса
Web-программист
короче, апи битрикса предлагает

<?if($arResult["DETAIL_PICTURE"]) {
   $PICTURE = CFile::ResizeImageGet($arResult["DETAIL_PICTURE"], Array('width'=>340, 'height'=>340), BX_RESIZE_IMAGE_PROPORTIONAL, true);?>
   <div class="Image"><img src="<?=$PICTURE["src"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" /></div>
<?}?>


но на входе у этого метода стоит
if (!is_array($file) || !array_key_exists("FILE_NAME", $file) || strlen($file["FILE_NAME"]) <= 0)
			return false;

я понятния не имею, где эти идиоты нашли такие ключи в $file
даже тот же MakeFileArray возвращает другие ключи
$arFile["name"] = $io->GetLogicalName(bx_basename($path));
			$arFile["size"] = filesize($path);
			$arFile["tmp_name"] = $path;
			$arFile["type"] = $mimetype;
Ответ написан
Что в $array["DETAIL_PICTURE"]? Если там массив из $_FILES - то возможно из-за этого не работает.
Метода работает только с зарегистрированными изображениями вроде. Т.е. должен быть либо id из b_file или результат CFile::GetFileArray.
Ну можнго еще попробовать заменить $array["DETAIL_PICTURE"] на CFile::GetFileArray($array["DETAIL_PICTURE"])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы