18
October
When updating file in existing node
here field name is "field_file" in node.
$node = \Drupal\node\Entity\Node::load($nid); // $nid is Node ID $node->set('field_file' , $fid); // $fid is file id which have to update in node file field. $node->save();
If you have to update files in multiple field value
In example "field_file" field has option to upload multiple files then we can use following code to upload/update multiple files in file field.
foreach($file_ids as $fid){ $files[]['target_id'] = $fid; } $node->set('field_file' , $files); $node->save();
When creating new Node
$node = \Drupal\node\Entity\Node::create([ 'type' => 'CONTENT_TYPE', 'title' => $name, 'uid' => $userid, 'body' => $message, ]); foreach($attach_files as $fid){ $node->field_file[] = [ 'target_id' => $fid, ]; }
If you are using custom form then following code you can use to upload files
$form['attach_file'] = [ '#type' => 'managed_file', '#title' => t('Kindly attached your files here. '), '#upload_validators' => array( 'file_validate_extensions' => array('doc docx pdf jpg jpeg png'), ), '#multiple' => TRUE, '#upload_location' => 'public://attach', ];
On form submit you can get file ids
$attach_files = $form_state->getValue('attach_file'); foreach($attach_files as $fid){ $files[]['target_id'] = $fid; } $node->set('field_file' , $files); $node->save();
© 2023.ZedAngle. All Rights Reserved.