Просто так CMS (да и сам php) не видит файлы, в именах которых есть кириллица, пробелы, спец.символы. По крайней мере такая ситуация есть на cp1251.
Наверное, на UTF-8 такой проблемы нет, не проверял.
Итак, если вы столкнулись с такой же проблемой, то пригодится этот код:
И пример для проверки (файл с кириллицей загружаем в корень, а название указываем в переменной $sFileName):
Наверное, на UTF-8 такой проблемы нет, не проверял.
Итак, если вы столкнулись с такой же проблемой, то пригодится этот код:
CFile::MakeFileArray(mb_convert_encoding($_SERVER["DOCUMENT_ROOT"]."/".$sFileName, 'UTF-8', 'Windows-1251')); |
И пример для проверки (файл с кириллицей загружаем в корень, а название указываем в переменной $sFileName):
global $USER; CModule::IncludeModule("iblock"); $arFile = CFile::MakeFileArray(mb_convert_encoding($_SERVER["DOCUMENT_ROOT"]."/".$sFileName, 'UTF-8', 'Windows-1251')); $el = new CIBlockElement; $arLoadProductArray = Array( 'MODIFIED_BY' => $GLOBALS['USER']->GetID(), 'IBLOCK_SECTION_ID' => false, 'IBLOCK_ID' => 3, 'NAME' => 'Элемент', 'ACTIVE' => 'Y', 'PREVIEW_TEXT' => 'текст для списка элементов', 'DETAIL_TEXT' => 'текст для детального просмотра', 'DETAIL_PICTURE' => $arFile ); if($PRODUCT_ID = $el->Add($arLoadProductArray)) { echo "New ID: ".$PRODUCT_ID; } else { echo "Error: ".$el->LAST_ERROR; } |