Я пытаюсь сохранить файл с помощью Storage :: put, но он всегда сохраняет пустой файл изображения, и я не понимаю, почему. Файл, который я пытаюсь сохранить, имеет кодировку base64.
Вот мой код:
$image = str_replace('data:image/png;base64,', '', $file);
$image = str_replace(' ', '+', $image);
$decodedFile = base64_decode($image);// Image Size
$size = strlen($decodedFile);
// Image Mime Type
$f = finfo_open();
$mimeType = finfo_buffer($f, $decodedFile, FILEINFO_MIME_TYPE);
finfo_close($f);
// Extension
$extension = explode('.', $filename)[1];
$error = null;
$test = $public;
// Save file locally
Storage::put('tmp/temporary', $decodedFile);
$object = new UploadedFile($url, $filename, $mimeType, $size, $error, $test);
Это то, что я получаю в результате, размер всегда 0
UploadedFile {#307 ▼
-test: false
-originalName: "wassho-omni-shoreham-hotel-marquee-lounge.jpg"-mimeType: "image/png"-size: 185463
-error: 0
path: "na_source/public/storage/tmp"filename: "temporary"basename: "temporary"pathname: "na_source/public/storage/tmp/temporary"extension: ""realPath: "na_source/storage/app/public/tmp/temporary"aTime: 2017-10-19 21:59:45
mTime: 2017-10-19 21:03:12
cTime: 2017-10-19 21:59:07
inode: 11166493
size: 0
perms: 0100644
owner: 1000
group: 1000
type: "file"writable: true
readable: true
executable: false
file: true
dir: false
link: false
}
Кто-то знает, что я здесь делаю не так?
В конце концов, мне было не совсем понятно, почему, но я заменил функцию Storage :: put на file_put_contents ($ url, $ decodedFile); Функция решила проблему и сохранила файл без проблем, используя приведенный выше код.
Других решений пока нет …