【问题标题】:Unable to init from given binary data无法从给定的二进制数据初始化
【发布时间】:2019-08-25 00:18:30
【问题描述】:

我正在尝试使用干预图像保存 base64 编码的图像,laravel-5 异常告诉我“无法从给定的二进制数据初始化”。 有人可以帮忙吗?

$png_url = "user-".time().".png";
$path = "/public/".$png_url;
Image::make(base64_encode($request['image']))->save($path);

【问题讨论】:

    标签: php laravel-5 base64


    【解决方案1】:
    <?php
    $png_url = "user-".time().".png";
    $path = "/public/".$png_url;
    $base=base64_decode($request['image']);
    Image::make($base)->save($path);
    ?>
    

    【讨论】:

    • 这不是和原问题中列出的一样吗?
    • 不,OP使用的是base64_encode(),答案是base64_decode()
    【解决方案2】:

    如果您的代码在您的本地主机上运行良好并且您上传到实时服务器并且您遇到此类错误有时是由 Windows 服务器和 ubuntu/etc 服务器上的路径问题引起的。

    就我而言,我将路径中的所有\ 更改为/

    即:

    Image::make(base64_decode($request['profile_pic']))->save(public_path('cdn\profile_pictures\/'.$imageName))->destroy();
    

    Image::make(base64_decode($request['profile_pic']))->save(public_path('cdn/profile_pictures//'.$imageName))->destroy();
    

    希望这对某人有所帮助...编码愉快...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多