-
Install Drupal Console
-
Copy content of
add-file-image-as-media-image.php
to console/snippet/ -
Execute drupal console
snippet
command
drupal snippet --file=console/snippet/add-file-image-as-media-image.php
<?php | |
$fileStorage = \Drupal::entityTypeManager() | |
->getStorage('file'); | |
$files = $fileStorage->loadMultiple(); | |
$mediaStorage = \Drupal::entityTypeManager() | |
->getStorage('media'); | |
// Enter user id to assign media | |
$uid = 1; | |
foreach ($files as $file) { | |
if (!$file->isPermanent()) { | |
continue; | |
} | |
$media = $mediaStorage->create([ | |
'bundle' => 'image', | |
'uid' => $uid, | |
'name' => $file->getFilename(), | |
'field_media_image' => [ | |
'target_id' => $file->id(), | |
'uuid' => $file->uuid(), | |
'alt' => $file->getFilename(), | |
'title' => $file->getFilename(), | |
], | |
]); | |
$media->save(); | |
echo $file->id() . | |
' - ' . | |
$file->getFilename() . | |
' - ' . | |
$file->getFileUri() . | |
' - ' . | |
($media?$media->id():'no-media') . | |
PHP_EOL; | |
} |