Decoder.php中存在laravel NotReadableException-无法从文件中读取图像

Decoder.php中存在laravel NotReadableException-无法从文件中读取图像,php,laravel-5,Php,Laravel 5,所以我得到了这个错误。在搜索互联网后,问题似乎与post\u upload\u size和post\u size有关,但事实并非如此 我上传了大一些的图片,效果很好,但是这个1.5MB的图片不起作用。就像是随机的。它适用于某些图像,但不适用于所有图像。这是完整的输出 哎呀,看起来好像出了什么问题: Decoder.php第46行中的1/1 NotReadableException:无法从文件(/tmp/phpvqep)读取图像 这是我的垃圾桶 object(Symfony\Component\H

所以我得到了这个错误。在搜索互联网后,问题似乎与
post\u upload\u size
post\u size
有关,但事实并非如此

我上传了大一些的图片,效果很好,但是这个1.5MB的图片不起作用。就像是随机的。它适用于某些图像,但不适用于所有图像。这是完整的输出

哎呀,看起来好像出了什么问题:

Decoder.php第46行中的1/1 NotReadableException:无法从文件(/tmp/phpvqep)读取图像

这是我的垃圾桶

object(Symfony\Component\HttpFoundation\File\UploadedFile)#30 (7) { ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(19) "20160212_124938.jpg" ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(10) "image/jpeg" ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(1606199) ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) ["pathName":"SplFileInfo":private]=> string(14) "/tmp/phpVpVQeP" ["fileName":"SplFileInfo":private]=> string(9) "phpVpVQeP" } string(14) "1483214733.jpg" string(76) "/home/laughlindavid/public_html/mealog.com/public/profilepics/1483214733.jpg" 
奇怪的是,它只是在某些图像上这样做

这是我的控制器中的代码

$image = Input::file('picture');
var_dump($image);
$filename  = time() . '.' . $image->getClientOriginalExtension();
var_dump($filename);
$path = public_path('profilepics/' . $filename);
var_dump($path);

Image::make($image->getRealPath())->resize(200, 200)->save($path);
            $image = $picture;

            echo '<br>';
            $filename  = time() . '.' . $image->getClientOriginalExtension();

            $path = public_path('profilepics/' . $filename);


        $imageMoved = $image->move(public_path('profilepics'), $filename);

         ini_set ('gd.jpeg_ignore_warning', 1);
         error_reporting(E_ALL & ~E_NOTICE);

                Image::make($path)->resize(200,200)->orientate()->save($path);

这个错误可能有很多不同的解决方案,但我希望这将有助于其他人。简单的回答是,我的php版本是5.6,它抛出了一个gd.jpeg警告,这可能导致我在intervention image Decoder.php文件中进行var_转储时,它没有显示为gd资源。也许使用Imagick驱动程序而不是GD驱动程序可以解决这个问题。但我用它来忽略警告,PHP版本1.7现在会自动执行该警告

ini_set ('gd.jpeg_ignore_warning', 1);error_reporting(E_ALL & ~E_NOTICE);
好啦!我现在上传的所有图片都是一致的,但我认为还有一个问题与此相关。我的图像中有EXIF数据,导致其中一些图像自动旋转,这很奇怪。幸运的是,干涉图像有一个用于“oriente()”的方法,我在创建图像时使用该方法。这是我在控制器中的新代码

$image = Input::file('picture');
var_dump($image);
$filename  = time() . '.' . $image->getClientOriginalExtension();
var_dump($filename);
$path = public_path('profilepics/' . $filename);
var_dump($path);

Image::make($image->getRealPath())->resize(200, 200)->save($path);
            $image = $picture;

            echo '<br>';
            $filename  = time() . '.' . $image->getClientOriginalExtension();

            $path = public_path('profilepics/' . $filename);


        $imageMoved = $image->move(public_path('profilepics'), $filename);

         ini_set ('gd.jpeg_ignore_warning', 1);
         error_reporting(E_ALL & ~E_NOTICE);

                Image::make($path)->resize(200,200)->orientate()->save($path);
$image=$picture;
回声“
”; $filename=time()$image->getClientOriginalExtension(); $path=public_path('profilepics/'。$filename); $imageMoved=$image->move(公共路径('profilepics'),$filename); ini设置('gd.jpeg\u忽略\u警告',1); 错误报告(全部和通知); Image::make($path)->resize(200200)->oriente()->save($path);

我真的希望这能为你节省我花在阅读完全不同的问题上的大部分时间。我的建议是从文件中转储错误,并比较(至少在我的情况下)非工作图像中的工作图像。平安快乐

这个错误可能有很多不同的解决方案,但我希望这会对其他人有所帮助。简单的回答是,我的php版本是5.6,它抛出了一个gd.jpeg警告,这可能导致我在intervention image Decoder.php文件中进行var_转储时,它没有显示为gd资源。也许使用Imagick驱动程序而不是GD驱动程序可以解决这个问题。但我用它来忽略警告,PHP版本1.7现在会自动执行该警告

ini_set ('gd.jpeg_ignore_warning', 1);error_reporting(E_ALL & ~E_NOTICE);
好啦!我现在上传的所有图片都是一致的,但我认为还有一个问题与此相关。我的图像中有EXIF数据,导致其中一些图像自动旋转,这很奇怪。幸运的是,干涉图像有一个用于“oriente()”的方法,我在创建图像时使用该方法。这是我在控制器中的新代码

$image = Input::file('picture');
var_dump($image);
$filename  = time() . '.' . $image->getClientOriginalExtension();
var_dump($filename);
$path = public_path('profilepics/' . $filename);
var_dump($path);

Image::make($image->getRealPath())->resize(200, 200)->save($path);
            $image = $picture;

            echo '<br>';
            $filename  = time() . '.' . $image->getClientOriginalExtension();

            $path = public_path('profilepics/' . $filename);


        $imageMoved = $image->move(public_path('profilepics'), $filename);

         ini_set ('gd.jpeg_ignore_warning', 1);
         error_reporting(E_ALL & ~E_NOTICE);

                Image::make($path)->resize(200,200)->orientate()->save($path);
$image=$picture;
回声“
”; $filename=time()$image->getClientOriginalExtension(); $path=public_path('profilepics/'。$filename); $imageMoved=$image->move(公共路径('profilepics'),$filename); ini设置('gd.jpeg\u忽略\u警告',1); 错误报告(全部和通知); Image::make($path)->resize(200200)->oriente()->save($path);

我真的希望这能为你节省我花在阅读完全不同的问题上的大部分时间。我的建议是从文件中转储错误,并比较(至少在我的情况下)非工作图像中的工作图像。平安快乐

我也有同样的问题。在安装了
imagick
驱动程序并将
driver
设置为
imagick
(config/image.php)而不是GD之后,我解决了这个问题。

我也遇到了同样的问题。在安装
imagick
驱动程序并将
driver
设置为
imagick
(config/image.php)后,我解决了这个问题
而不是GD。

注意:我还从临时文件夹中移动了上载的图像,因为我了解到这可能有问题。我在
[GD]之后的php.ini中添加了
GD.jpeg\u ignore\u warning=1
注意:我还从临时文件夹中移动了上载的图像,因为我了解到这可能有问题。我在
[gd]
之后向php.ini添加了
gd.jpeg\u ignore\u warning=1