На сайте необходимо, чтобы все файлы загружаемые в определенный инфоблок складывались в одну папку, а не как модулю инфоблоку вздумается. Все работает, но возникла проблема, что после добавления файла битрикс его не видит. Если сбросить весь кеш, то видит файл. Попробовал метод
| Код |
|---|
CFile::CleanCache($fileID); |
Если я делаю в PHP консоли, то файл появляется, но если в событии после добавления элемента, то не сбрасывает... Код сохранения файла в свою папку:
| Код |
|---|
AddEventHandler("main", "OnFileSave", function(&$arFile, $strFileName, $strSavePath, $bForceMD5, $bSkipExt, $dirAdd){
if($arFile["iblock_id"] != NEED_IBLOCK_ID) return;
$arFile['SUBDIR'] = "my_folder_for_files";
$arFile['FILE_NAME'] = $strFileName;
$uploadDir = COption::GetOptionString("main", "upload_dir", "upload");
$destinationName = sprintf("%s/%s/%s/%s", $_SERVER['DOCUMENT_ROOT'], $uploadDir, $arFile['SUBDIR'], $arFile['FILE_NAME']);
$folderName = sprintf("%s/%s/%s/", $_SERVER['DOCUMENT_ROOT'], $uploadDir, $arFile['SUBDIR']);
if (!file_exists($folderName)){
mkdir($folderName);
}
if(move_uploaded_file($arFile['tmp_name'], $destinationName)){
return true;
}else{
$APPLICATION->ThrowException('При добавлении элемента произошла ошибка');
}
});
|