E-comerse разработка

любой сложности !

Битрикс - очистка таблицы B_file

03.12.2019
В прошлой статье мы рассматривали как почистить от мусора папку upload, в этом расскажу как очистить таблицу b_file от битых ссылок на изображения и прочие файлы. 
На практике столкнулся с задачей, когда при восстановлении сайта из битого бэкапа, около 30% папки upload потерялось. На сайте, где больше миллиона товаров это порядка 300 000 битых ссылок. 
Нам поможет простой скрипт:
$oRes = \CFile::GetList(['ID' => 'ASC']);
while ($arFile = $oRes->Fetch()) {
$sPath = $_SERVER['DOCUMENT_ROOT'] . '/upload/' . $arFile['SUBDIR'] . '/' . $arFile['FILE_NAME'];
if (!file_exists($sPath)) {
\CFile::Delete($arFile['ID']);
}
}



Результат выполнения: