Как программно прикрепить файл к полю файла в узле? [закрыто]

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

Я обнаружил, что Realityloop: программное присоединение файлов к узлу в Drupal 8, но это не похоже для работы.

Это было предложено в приведенной выше ссылке

  $ node = Node :: create (['type' => '  article ',' title '=>' Druplicon test ',' field_image '=> [' target_id '=> $ file-> id (),],]); $ node-> save ();  

Это то, что я пробовал внутри submitForm

  $ fid = $ form_state-> getValue ('file_field_name  ') [0]; $ file = File :: load ($ fid); $ file-> setPermanent (); $ file-> save (); $ node = Node :: load ($ nid);'));  $ node-> set ('file_field_in_node', $ file-> id); $ node-> save ();  

Это устанавливало файл как постоянный в таблице файлов, но на узле не было файла.

Я также пытался сохранить с помощью

  $ node-> set ('file_field_in_node', $ file)  ;  

Это тоже не помогло. Мне также любопытно, какой файл/функция обрабатывает функцию set для поля файла.

ОБНОВЛЕНИЕ:

[Решено] Не уверен, что было не так раньше. Оба подхода теперь работают правильно. Таким образом, установка file_id или объекта файла в поле файла для узла, похоже, правильно сохраняет узел с прикрепленным к нему файлом.


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

  $ node = Node :: load  (NID);  $ node-> set ('field_file', ['target_id' => FID]);  $ node-> save ();  

Примечание. FID — это идентификатор вашего файла.


Используйте в настраиваемой форме такой код:

  $ form ['imagefile'] = ['  #type '=>' managed_file ',' #title '=> $ this-> t (' Imagefile '),' #default_value '=> $ this-> configuration [' imagefile '],' #weight '=>'  0 ',' #upload_location '=>' public://images/redaktion/',];  

А вот фрагмент кода, как это работает на низком уровне:

 //проверяем, существует ли папка $ folder = date ('Y-m', time ()); $ data = file_get_contents ($ imagefilepath); if (! is_dir ("/ home/rainer/src/asdent/web/sites/default/files/images/pics/{$ folder} ")) {mkdir ("/home/rainer/src/asdent/web/sites/default/files/images/ pics/{$ folder} ");}//создаем файловую сущность $ photo = file_save_data ($ data," public://images/pics/{$ folder}/". $ filename, FILE_EXISTS_REPLACE);//позже в вашей сущности :: create: 'myimage' => ['target_id' => $ photo-> id ()],  

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

2



Прикрепить файл в MB51 с объектами GOS программно

Я работаю над созданием движения документа материала (отчет MB51) и затем прикрепляю к нему документ. Итак, я закончил создание документа и возвращение номер документа.

А теперь мне нужно прикрепить файл к этому документу. Я не смог узнать, какой BAPI делает это …

, так что могу я пожалуйста, спросите вас, какой BAPI может позволить мне загрузить файл с моего диска в объект?

I хочу сделать то же самое в коде, который я делаю таким образом:

УСЛУГИ ДЛЯ ОБЪЕКТА> СОЗДАТЬ> СОЗДАТЬ ПРИЛОЖЕНИЕ

Приветствую Примечание. Я ищу удаленный способ сделать это, поэтому о модуле ARCHIVOBJECT_CREATE_FILE FunctionModule не может быть речи 🙁


вы можете использовать функциональный модуль ARCHIV_CONNECTION_INSERT. Надеюсь, это нормально вместо BAPI. Есть пост в SAP-блоге с дальнейшим описанием.

https://blogs.sap.com/2018/04/22/programmatically-create -and-retrieve-documents-attached-in-gos-generic-object-services-via-stored-business-document./

2

Оцените статью
clickpad.ru
Добавить комментарий