How to attach an image or file to node in Drupal 8 programmatically

Posted by admin on Tue, 01/30/2018 - 09:09

Quick code sample on how to get and attach an image or file to node or other entity programmatically in Drupal 8.

Here's an example how you could save an image to node if you get this with file_get_contents

use \Drupal\node\Entity\Node;
 
// Create file object from remote URL.
$data = file_get_contents('https://www.drupal.org/files/druplicon.small_.png');
$file = file_save_data($data, 'public://druplicon.png', FILE_EXISTS_REPLACE);
 
// Create node object with attached file.
$node = Node::create([
  'type'        => 'article',
  'title'       => 'Druplicon test',
  'field_image' => [
    'target_id' => $file->id(),
  ],
]);
$node->save();

If you have an image already exists in you file system - so you could just attach it without any additional file manipulation.

use \Drupal\node\Entity\Node;
use \Drupal\file\Entity\File;
 
// Create file object from a locally copied file.
$uri  = file_unmanaged_copy('public://source.jpg', 'public://destination.jpg', FILE_EXISTS_REPLACE);
$file = File::Create([
  'uri' => $uri,
]);
$file->save();
 
// Load existing node and attach file.
$node = Node::load(1);
$node->field_image->setValue([
  'target_id' => $file->id(),
]);
$node->save();

And special thanks to Drupal 8 developers - you could easily create an image placeholder!
Just like this:

use \Drupal\node\Entity\Node;
 
$node = Node::create([
  'type'  => 'article',
  'title' => 'Generated image test',
]);
$node->field_image->generateSampleItems();
$node->save();
×

Hey! Don't miss a new cool stuff!

Comments

fuu88 (not verified)

fuu88
Getting started at a legal, real-money online casino

สมัคร igoal88 (not verified)

<a href="https://igoal88win.com/">สมัคร igoal88win</a> The best online casinos in Thailand make good money.

wm casino (not verified)

How to play slots for money Here we have a lot of tips for you to learn. wm casino

123 (not verified)

Online casinos It consists of Baccarat games, slots, card games, roulette and many other games.เว็บนาซ่า

<a href="http:/... (not verified)
789heng (not verified)

Online games on mobile phones, easy to play, easy to break, easy to break, get real money, apply now. at 789heng only.สล็อตแตกง่าย

ufapony88 (not verified)

ufa casino website that have all the betting in it to answer all the needed for the gambler

mohammad abdullah (not verified)

we love watching Dancing with the stars, the actresses and actors that joins it are nice:: เกมส์

Anonymous (not verified)

the most 123over only123over

สล็อต123 (not verified)

สล็อต123 The best online casinos in Thailand make good money.

naza (not verified)

naza Casino, slots and promotions

พนันออนไลน์88 (not verified)

พนันออนไลน์88
Is the number 1 most popular online gambling website

MM79 (not verified)

บิงโก
Bingo game, easy to play, get real money, free credit all year round

naza (not verified)

naza Online and online gambling in the most advanced form of gambling website in Thailand.

เว็บพนันออนไลน์ (not verified)

เว็บพนันออนไลน์Including all kinds of sports betting online. That way, no other website is open for this service. More than 100,000 sports bets. The rotation allows you to choose to bet on every match per day, there are more leagues than football betting.

Naza1 (not verified)

ค่ายเกม Casino, Football, Slots, Baccarat

6665 (not verified)

bewin The number 1 online gambling web service provider with the most traffic.

sa casino (not verified)

sa casino Online gambling service providers That answers all needs Excellent gambler 24 hours a day.

คาสิโนออนไลน์ (not verified)

There are many promotions with the benefit of participating in bets. สมัครเว็บ naza55 คาสิโนออนไลน์

III7X (not verified)

allbet Jackpots are easy to break, get money quickly, we pay for real

123abc (not verified)

ยอดเทิร์นโอเวอร์ 1 online gambling website We have a friend referral system that can easily make money. For you, all customers, convenient to use and easy to do

789heng (not verified)

Including all leading online slots games, all brands, pay every game at 789heng only.บาคาร่า

5678 (not verified)

เว็บนาซ่า Is the number 1 popular online gambling website, must be here

พนันออนไลน์ (not verified)

พนันออนไลน์
Easily build on Or even giving away free credit

เว็บพนันออนไลน์ (not verified)

เว็บพนันออนไลน์ The most popular online gambling website Apply today, there are special promotions that you must be excited about. Our website is served by a professional team.

28 (not verified)

28 The best online football betting websites

เว็บพนัน (not verified)

เว็บพนัน Comprehensive online gambling website popular service the most in Thailand Accept all types of online sports betting and casinos.

naza55 naza (not verified)

ราคาบอลไหล I am glad that it turned out so well and I hope it will

mohammad abdullah (not verified)

What i don’t understood is in truth how you’re no longer really a lot more well-liked than you might be now. You are very intelligent. You understand thus considerably in terms of this topic, made me individually consider it from numerous varied angles. Its like men and women are not fascinated unless it¡¦s one thing to accomplish with Woman gaga! Your personal stuffs outstanding. Always maintain it up! 가입시 꽁머니 사이트

123 (not verified)

Enjoy a lot of betting on your smartphone.กติกาบาคาร่า

123 (not verified)

Enjoy a lot of betting on your smartphone.กติกาบาคาร่า

เว็บคาสิโนออนไลน์ (not verified)
ss (not verified)

Finally there is entertainment in your spare time, there are over 100 games to choose from. เว็บคาสิโนออนไลน์

<a href="https:... (not verified)

ฟรีสปิน Register for free online baccarat. No need to play Baccarat Poipet, just enter the website and get real money at home. Baccarat online, Baccarat formula is very popular to make money.

yolo (not verified)

igoal88Can be held that one website is complete, convenient, can play via smartphones, all systems

ตารางบิงโก (not verified)

ตารางบิงโก
ตารางบิงโก Bingo. Small investment. Get a lot of money. Play for fun and not get bored. Bingo.

123over (not verified)

online slot games Best online games for real money สล็อต

naza (not verified)

แฮนดิแคป online gambling website We have a friend referral system that can easily make money

thanunya (not verified)

คาสิโน123 Phew, we also use low investment as well. Which gives you the opportunity to profit from playing

saksun kholoy (not verified)

บาคาร่าThe Belgian retrospective website is comparable, easy to get out, easy to get rich.

seo person (not verified)

I get here from google, but unfortunatelly I’m not found what I want. But this is a great article! THX!Kate Ruhn Nashville Roofers

fuu88 (not verified)

fuu88
Online football And online football betting websites That these gamblers use the service,
that is, is an online football betting website. The best in this era!

MM79 (not verified)

Igoal Is the number 1 most popular online gambling website.

เว็บ 123 (not verified)

เว็บ 123 Bet on the lottery, Laos lottery, Thai lottery, Yi Ki lottery, Hanoi lottery, Malay lottery, the best

เว็บ 123 (not verified)

เว็บ 123 Do you want extar money?

สูตร pg slot ฟรี (not verified)

สูตร pg slot ฟรี
The most trusted online gambling website at the moment

6665 (not verified)

หวยใต้ดินThe number 1 online lottery website in Asia with the most players.

เว็บ 123 (not verified)

เว็บ 123 The best online casinos in Thailand make good money.

IGOAL (not verified)

IGOAL
IGOAL is the website that have all the betting in it to answer all the needed for the gambler

123 (not verified)

The best online casinos in Thailand make good money.ค่ายเกมส์สล็อต

Add new comment