Для изменения свойств загружаемого документа в Битрикс можно воспользоваться следующим подходом:
- Откройте файл-обработчик загрузки документов на сервере. Обычно это файл bitrix/phpinterface/init.php или bitrix/phpinterface/dbconn.php, в зависимости от версии 1C-Bitrix. Этот файл вызывается перед началом работы ядра системы, поэтому в нём можно определить пользовательские функции и хуки.
- Создайте пользовательскую функцию (например,
changeDocumentProperties
), которая будет вызываться в момент загрузки документа.
- В пользовательской функции
changeDocumentProperties
можно получить информацию о загруженном файле и его свойствах с помощью объектов классаCFile
.
Пример кода для функции changeDocumentProperties
:
function changeDocumentProperties($fileID) { $file = CFile::GetFileArray($fileID); // Получаем информацию о загруженном файле $fileName = $file['FILE_NAME']; $fileSize = $file['FILE_SIZE']; $fileType = $file['CONTENT_TYPE']; // Меняем необходимые свойства // Например, можно изменить название файла $newFileName = 'new_file_name' . pathinfo($fileName, PATHINFO_EXTENSION); CFile::Rename($fileID, $newFileName); // Дополнительные операции по изменению свойств // ... }
- Чтобы вызвать пользовательскую функцию
changeDocumentProperties
в момент загрузки документа, необходимо использовать хукOnAfterFileSave
. Добавьте следующий код в конце файла-обработчика:
AddEventHandler("main", "OnAfterFileSave", "changeDocumentProperties"); function changeDocumentProperties($fileArray) { if ($fileArray["MODULE_ID"] == "iblock") { // Вызываем пользовательскую функцию только если загружаемый файл принадлежит модулю инфоблоков changeDocumentProperties($fileArray["ID"]); } }
Этот хук будет вызываться каждый раз после сохранения файла в системе. Мы проверяем, принадлежит ли загружаемый файл модулю инфоблоков, а затем вызываем пользовательскую функцию changeDocumentProperties
, передавая ей идентификатор файла.
Обратите внимание, что указанные примеры являются базовыми и могут быть модифицированы в зависимости от конкретных требований вашего проекта.