Рейтинг:0

Как вы устанавливаете расширение файла при загрузке изображений через file_save_data?

флаг th

Я пытаюсь создать продукт с изображением продукта на drupal с использованием API. Я создал собственный модуль для того же, в котором следующий код загружает мое изображение в Drupal:

$path = base64_decode($encodedData['content']);
$data= $this->grabImage($path);
$file = file_save_data($data, null, FileSystemInterface::EXISTS_REPLACE);
        
$id = $файл->id();

Я использую метод drupal file_save_data для успешной загрузки изображения, и оно загружается в следующий каталог drupal:

mystore2/веб/сайты/по умолчанию/файлы

Теперь я использую это $file->id() // скажем 53 значение в моем массиве продуктов, чтобы связать это изображение с моим продуктом.

$изображение['поле_картинка'] = [[
    "target_id" => 53,
    "альт" => 'абвд',
    "ширина" => 224,
    "высота" => 225,
    "название" => '',
    "target_type" => "файл"
]];

Следуйте ответу, который я получаю от API:

> сообщение:
> Необрабатываемый объект: проверка не удалась.
> field_picture.0: разрешены только файлы со следующими расширениями: png gif jpg jpeg.\n

Итак, как я могу передать расширение в file_save_data()? Или как я могу добавить это изображение к своему продукту?

Я использую Drupal версии ^9.

Рейтинг:0
флаг cn

Вам необходимо передать путь к файлу, включая его имя и расширение, так как $пункт назначения параметр:

$file = file_save_data($data, 'public://path/to/file.ext', FileSystemInterface::EXISTS_REPLACE);
sonfd avatar
флаг in
Где `path/to/file.ext` — это то, что вам нужно (хотя вы определенно должны быть внимательны, если используете опцию `FileSystemInterface::EXISTS_REPLACE`).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.