图像干预InvalidImageDataStringException Laravel

时间:2014-12-11 10:27:31

标签: php laravel

Morning People,我似乎无法修复错误,我目前将base64字符串传递给我的image intervention api并尝试将其保存到公共目录。

错误

  

错误:   {类型:干预\图片\异常\ InvalidImageDataStringException,   消息:,...}文件:   “/home/celeb/public_html/dev/vendor/intervention/image/src/Intervention/Image/Image.php”   line:1968消息:“”类型:   “干预\图片\异常\ InvalidImageDataStringException”

我传递给Image :: make - >的数据字符串http://pastebin.com/BGbUeZhr

代码

public function upload(){

    $fileName = Input::get('name');
    $explode    = explode('.',$fileName);
    $extension  = strtolower(end($explode));

    $img = Image::make(base64_decode(Input::get('data')));

    $fileName = "profiles/".md5(time()).'.'.$extension;
    $path = public_path($fileName);

    if($img->save($path)){
        echo "Image Added";
    }
}

没有base64_decode错误。

{error:{type:Intervention\Image\Exception\ImageNotFoundException,…}}
error: {type:Intervention\Image\Exception\ImageNotFoundException,…}
file: "/home/celeb/public_html/dev/vendor/intervention/image/src/Intervention/Image/Image.php"
line: 198
message: "Image file (data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAIcCAYAAAA5Xcd7AAAgAElEQVR4Xuydh0MUWRLG30RyRgEJKmDOYYN39//f7a5uNOtG3eQqihInXn31uprHiCIyzEzPfG+vrloYpru/Hob5daVUVZbjogJUoCkKPH/+3N27dy+2x48fuxcvXsS2tLTk6vErmkqlnUtlHHxKvPzjrfOtVsuyr7Jz6itN0YM7pQJUgApQgYNVIJPpddnckMvmh9Wns/0uncrK34acS6XhszscgP+bkUrBp+Rv..

1 个答案:

答案 0 :(得分:1)

不解码字符串,图像干预需要图像的base64编码字符串来制作图像。查看here以获取源参数。

参数是;

从中创建图像的来源。该方法响应以下输入类型:

  • string - 文件系统中图像的路径。
  • 字符串 - URL图片(必须启用allow_url_fopen)。
  • string - Binary图片数据。
  • string - Data-URL编码图像数据。
  • string - Base64编码图像数据。
  • resource - 类型为gd的PHP资源。 (使用GD驱动程序时)
  • object - Imagick实例(使用Imagick驱动程序时)
  • object - Intervention\Image\Image instance
  • object - SplFileInfo instance(通过Symfony\Component\HttpFoundation\File\UploadedFile处理Laravel文件上传)

编辑:

data:image/png;base64,不应该在那里;

使用;

$image_str = Input::get('data');
$array = explode(',', $image_str);

Image::make($array[1]);