Как прикрепить к ноде программно созданный файл?

Главные вкладки

Аватар пользователя engenes engenes 22 мая 2019 в 15:56

Программно сгенерировал файл и положил его в папку sites/default/files/

Коротко опишу процесс что хочу получить:

При нажатии на кнопку, надо сгенерировать файл, и прикрепить его к определенной ноде, имеющей поле "файл".

Сначала для наглядности я прикрепил файл к ноде через интерфейс и сохранил ее.

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

<?php

Array
(
    [
und] => Array
        (
            [
0] => Array
                (
                    [
fid] => 346
                    
[uid] => 1
                    
[filename] => sertifikat-222.pdf
                    
[uri] => public://sertifikat-222_0.pdf
                    
[filemime] => application/pdf
                    
[filesize] => 154558
                    
[status] => 1
                    
[timestamp] => 1558528601
                    
[type] => document
                    
[media_title] => Array
                        (
                        )

                    [

media_description] => Array
                        (
                        )

                    [

field_tags] => Array
                        (
                        )

                    [

field_license] => Array
                        (
                            [
und] => Array
                                (
                                    [
0] => Array
                                        (
                                            [
value] => nothing
                                        
)

                                )

                        )

                    [

rdf_mapping] => Array
                        (
                        )

                    [

metadata] => Array
                        (
                        )

                    [

display] => 1
                    
[description] => 
                )

        )

)

?>

Вопрос: как получить такой же массив со всей необходимой информацией о файле после его генерации, если он уже помещается в нужную диррикторию?

Лучший ответ

Аватар пользователя gun_dose gun_dose 23 мая 2019 в 10:17
<?php
 $file 
file_save_data($image$dirname '/' $filename);
 
$node->field_image['und'][] = array('fid' => $file->fid);
?>

Все остальные ключи создадутся автоматом при сохранении ноды.

Комментарии

Аватар пользователя gun_dose gun_dose 23 мая 2019 в 10:17
<?php
 $file 
file_save_data($image$dirname '/' $filename);
 
$node->field_image['und'][] = array('fid' => $file->fid);
?>

Все остальные ключи создадутся автоматом при сохранении ноды.

Аватар пользователя engenes engenes 24 мая 2019 в 7:13

Да, использовал эту функцию, но по сути, она берет текущий файл и перезаписывает его. Думал, что есть функция, которая позволяет добавить данные о файле в базу без его пересохранения.