Стоит ли хранить изображения base64 в БД?
composer require symfony/dom-crawler
use Symfony\Component\DomCrawler\Crawler;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\File;
$desc = $request->input('some_html'); // POST with html
$dom_desc = new Crawler($desc);
$images = $dom_desc->filterXPath('//img')->extract(array('src')); // extract images
foreach ($images as $key => $value) {
if (strpos($value, 'base64') !== false) { // leave alone not base64 images
$data = explode(',', $value); // split image mime and body
$tmp_file = tempnam('/tmp', 'items'); // create tmp file path
file_put_contents($tmp_file, base64_decode($data[1])); // fill temp file with image
$path = Storage::putFile('public/items', new File($tmp_file)); // put file to final destination
$desc = str_replace($value, $path, $desc); // replace src of converted file to fs path
unlink($tmp_file); // delete temp file
}
}
Как вообще такое может быть?
event.loaded / data
If the event's lengthComputable property is false, this value is meaningless and should be ignored
Через отладчик смотрите запуски, пытаетесь понять понять какие паттерны были применены. Для меня просто как черный ящик относительно код пакета, но я понимаю, что как раз надо исследовать и понимать как оно устроено.
Я к примеру не смог разобраться с текстовым редактором, чтобы изменить поведение загрузки изображение не в base64, а с помощью ссылки полученной с сервера. Документация к нему есть очень простенькая и при этом можно конечно и самому понять как он работает и переписать какую то часть.
Я что-то пропустил, и изменения “ограничения” не коснуться определенных аккаунтов?
Организаций, в которых состоит не более 3 пользователей, включая администратора.
Организаций, которые имеют статус нерезидента.
Организаций, которые использовали партнерскую программу для подключения к сервисам.
Бюджетных образовательных учреждений школьного и дошкольного образования.
Некоммерческих организаций (по программе «Помощь рядом»).
Пользователей, почта которых привязана к личному кабинету соответствующего портала.
Организаций, с которыми заключен письменный договор (не оферта).
Пользователей с почтовыми ящиками вида «login@yandex.ru», даже если они состоят в организации.
Пользователей с активным Яндекс 360 Премиум.