Столкнулся с задачкой.
Автоматически создаётся элемент инфоблока, у которого одно из дополнительный свойтсв типа "файл". По нажатию на кнопку файл (*.doc) генерируется автоматически из некоторого контента на странице, после чего сохраняется на сервере (некое файлохранилище).
Далее нужно создать в соответствующем инфоблоке новый элемент с ссылкой на данный файл. И тут я столкнулся с проблемой. Свойство "файл" инфоблока хранит непосредственно id данного файла, значит просто создать файл недостаточно - нужно зарегистрировать его в базе и получить его идентификатор.
А вот как зарегистрировать уже существующий файл ?
Ближайшее, что я нашёл:
CFile::SaveFile (Функция сохраняет файл и регистрирует его в таблице файлов (b_file))
Но! У функции два обязательных параметра:
а) Массив с данными файла определённого формата. Все ли поля массива обязательны для заполнения ? К примеру тип файла - имеется ввиду MIME-TYPE или что-то другое ? Нужно ли некое id старого файла и т.п.
б) save_path - Путь к папке в которой хранятся файлы (относительно папки /upload). Для чего ? или путь к файлу и его имя передаются в функцию разными параметрами ?
Встречал также в API в виде комментария, что можно загрузить DETAIL_PICTURE при создании элемента, передав в него массив $_FILE с загружаемой картинкой. Но у меня файл уже существует на сервере и как получить из существующего файла все необходимые параметры для сохранения... И какие из параметров являются именно необходимыми, а какие можно опустить?
В общем назрел вот такой вопрос. Буду очень рад любой помощи
Автоматически создаётся элемент инфоблока, у которого одно из дополнительный свойтсв типа "файл". По нажатию на кнопку файл (*.doc) генерируется автоматически из некоторого контента на странице, после чего сохраняется на сервере (некое файлохранилище).
Далее нужно создать в соответствующем инфоблоке новый элемент с ссылкой на данный файл. И тут я столкнулся с проблемой. Свойство "файл" инфоблока хранит непосредственно id данного файла, значит просто создать файл недостаточно - нужно зарегистрировать его в базе и получить его идентификатор.
А вот как зарегистрировать уже существующий файл ?
Ближайшее, что я нашёл:
CFile::SaveFile (Функция сохраняет файл и регистрирует его в таблице файлов (b_file))
Но! У функции два обязательных параметра:
а) Массив с данными файла определённого формата. Все ли поля массива обязательны для заполнения ? К примеру тип файла - имеется ввиду MIME-TYPE или что-то другое ? Нужно ли некое id старого файла и т.п.
б) save_path - Путь к папке в которой хранятся файлы (относительно папки /upload). Для чего ? или путь к файлу и его имя передаются в функцию разными параметрами ?
Встречал также в API в виде комментария, что можно загрузить DETAIL_PICTURE при создании элемента, передав в него массив $_FILE с загружаемой картинкой. Но у меня файл уже существует на сервере и как получить из существующего файла все необходимые параметры для сохранения... И какие из параметров являются именно необходимыми, а какие можно опустить?
В общем назрел вот такой вопрос. Буду очень рад любой помощи