2022-06-17 09:38:00
2549

Для работы с файлами и изображениями используется класс CFile 

Вот пример, кода, как сохранить несколько файлов в свойство нового элемента

    $item["image"] — содержит массив изображений


 

    $imgItemList = array();
    foreach($item["image"] as $val){   if($val) $imgItemList[] = CFile::MakeFileArray($val); }

    $PROP['LIST_IMG'] = $imgItemList; //сюда записываем массив избражений LIST_IMG — у вас своё свойство

    $arLoadProductArray = Array( 

        "ACTIVE_FROM" => date('d.m.Y H:i:s'), 
        "MODIFIED_BY" => 1, 
        "IBLOCK_ID" => $IBLOCK_ID,
        "CONTENT_TYPE" => 'html', 
        "CODE" => Cutil::translit(strtolower($nameProduct),"ru",$arParamsTranslit),
        'DETAIL_TEXT_TYPE' => 'html',     
        'PREVIEW_TEXT_TYPE' => 'html',    
        "NAME" => $nameProduct, 
        "IBLOCK_SECTION" => $thisItemCatGoToAr,
        "ACTIVE" => "Y", 
        "PROPERTY_VALUES"=> $PROP, 
        "DETAIL_TEXT" => $item["description"], 

      );

 Так мы можем сохранять изображение или в файл в свойство. Так же можно записывать изображения в детальную    или превью. 

         $arLoadProductArray["DETAIL_PICTURE"] = CFile::MakeFileArray($item["image"][0]); 

         $arLoadProductArray["PREVIEW_PICTURE"] = CFile::MakeFileArray($item["image"][0]);

Это то что мне часто требуется в работе с файлами, дополнительные методы, которые я частао использую при работе с файлами. 

GetByID — позволяет получить информацию о файле.

GetPath — позволяет получить путь к файлу по его id

Информация с сайта Битрикса

Чтобы сохранить файл нужно воспользоваться методом  CFile::SaveFile 

Параметры которые принимает метод 

    CFile::SaveFile(
    array file,
    string save_path,
    bool ForceMD5=false, 
    bool SkipExt=false),
    $dirAdd='',
    bool  checkDuplicates = true );     

Что принимает file

    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла",
    "old_file" => "ID старого файла",
    "del" => "флажок - удалить ли существующий файл - любое непустое значение",
    "MODULE_ID" => "название модуля",
    "description" => "описание файла",
    "content" => "содержимое файла. Можно сохранять файл, указывая его содержимое, а не только массив, полученный при  

save_path Путь к папке в которой хранятся файлы (относительно папки /upload).  
ForceMD5 Необязательный. По умолчанию false. 7.0.0
SkipExt Необязательный. По умолчанию false. 7.0.0
dirAdd   7.0.0
checkDuplicates Проверка на дубли. Необязательный. По умолчанию true.

 

Комментарии (47)