Рейтинг:0

Как сохранить декодированное изображение base64 в file_managed?

флаг cn

Я пытаюсь сохранить свое изображение в Drupal. файл_управляемый Таблица. Однако мое изображение исходит из декодирования base64:

 $filename = "sign-".$user->id(); // возвращает "знак-1234"
 $image_raw = $form_state->getValue('подпись'); // возвращает строку png в формате base64
 $data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $image_raw));
 $image = file_put_contents('private://requestformfiles/'.$filename.'.png', $data);

 $file = File::load($image); // ничего не получает
 $файл->setPermanent(); // терпит неудачу
 $файл->сохранить(); 

 $result = $connection->insert('request_id')
        ->поля([
            ...
            'подпись' => $ изображение,
            ...
        ])
        ->выполнить();

Из того, что я вижу, мой файл успешно загружается в папку личных файлов, и изображение возвращает случайное 4-значное число. Однако при установке его на файл_управляемый в базе данных это не удается, так как Файл::загрузить не могу видеть мой $изображение.

Любая помощь снова приветствуется.

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

мне на самом деле не пришлось использовать Файл сущность для этого, что мне действительно нужно было file_save_data()

$filename = "nrsign-".$user->id();
$files_data = preg_replace('#^data:application/\w+;base64,#i', '', $image_raw);
$file_data = base64_decode($files_data);
$file = file_save_data($file_data, "private://requestformfiles/".$filename.".png", FILE_EXISTS_RENAME);

эхо $файл->идентификатор();

file_save_data создает файл и сохраняет запись в файлы_управляемые также. $файл->идентификатор(); возвращает $фид для созданного файла.

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

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