Вы не включают data:URI scheme
(data:image/png;base64,
) внутри $data
.
Вы можете удалить data:URI scheme
с помощью функции explode
, которая вернет массив с двумя элементами и перед использованием base64_decode
.
$data[0]
=> данные: схема URI.
$data[1]
=> Ваши данные.
Используйте его как следует, используя в качестве разделителя ,
:
$data = explode(',', $data)[1];
А потом Попробуйте следующий код:
$fileName = Input::get('file_name');
$fileStream = fopen(public_path() . '/user_attachments/' . $fileName , "wb");
fwrite($fileStream, base64_decode($data));
fclose($fileStream);
или
//////////// The final filename.
$fileName= Input::get('file_name');
//////////// Upload path
$uploadPath = public_path() . "/user_attachments/" . $fileName;
//////////// Decode your image/file
$data = base64_decode($data);
//////////// Upload the decoded file/image
if(file_put_contents($uploadPath , $data)){
echo "Success!";
}else{
echo "Unable to save the file.";
}
В папке user_attachments будет создано только пустое изображение или документы. – SARAN
Мои данные - это файл base64. $ data = data: image/png; base64, iVBORw0KGgoAAAA ........... kSuQmCC – SARAN
Проблема заключается в том, что 'data: image/png; base64'. Это превращает данные '$ data' в недопустимые данные. Попробуйте без 'data: URI scheme' (' data: image/png; base64, ') – tomloprod