Для изменения свойств загружаемого документа в Битрикс можно воспользоваться следующим подходом:
1. Откройте файл-обработчик загрузки документов на сервере. Обычно это файл bitrix/php_interface/init.php или bitrix/php_interface/dbconn.php, в зависимости от версии 1C-Bitrix. Этот файл вызывается перед началом работы ядра системы, поэтому в нём можно определить пользовательские функции и хуки.
2. Создайте пользовательскую функцию (например, changeDocumentProperties
), которая будет вызываться в момент загрузки документа.
3. В пользовательской функции 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); // Дополнительные операции по изменению свойств // ... }
4. Чтобы вызвать пользовательскую функцию changeDocumentProperties
в момент загрузки документа, необходимо использовать хук OnAfterFileSave
. Добавьте следующий код в конце файла-обработчика:
AddEventHandler("main", "OnAfterFileSave", "changeDocumentProperties"); function changeDocumentProperties($fileArray) { if ($fileArray["MODULE_ID"] == "iblock") { // Вызываем пользовательскую функцию только если загружаемый файл принадлежит модулю инфоблоков changeDocumentProperties($fileArray["ID"]); } }
Этот хук будет вызываться каждый раз после сохранения файла в системе. Мы проверяем, принадлежит ли загружаемый файл модулю инфоблоков, а затем вызываем пользовательскую функцию changeDocumentProperties
, передавая ей идентификатор файла.
Обратите внимание, что указанные примеры являются базовыми и могут быть модифицированы в зависимости от конкретных требований вашего проекта.