【发布时间】:2018-07-13 16:31:58
【问题描述】:
我正在构建一个 Laravel 应用程序,并正在使用带有 GD 的干预来进行图像处理。
当我尝试将 JPG 图像上传到我的控制器时,出现以下错误并出现 Whoops 错误屏幕:
Intervention\Image\Exception\NotReadableException:不支持的图像类型。 GD 驱动程序只能解码 JPG、PNG、GIF 或 WebP 文件。在第 57 行的文件 /var/www/html/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php 中
堆栈跟踪:
- Intervention\Image\Exception\NotReadableException->() /var/www/html/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php:57
Files:
file
array:5 [
"name" => "matt-thomason-735925-unsplash.jpg"
"type" => ""
"tmp_name" => ""
"error" => 1
"size" => 0
]
...
HTTP_ACCEPT_ENCODING "gzip, deflate"
CONTENT_TYPE "multipart/form-data; boundary=--------------------------023031476826032436071549"
CONTENT_LENGTH "2947672"
...
从内容长度来看,因为我知道我的文件约为 2.9MB,所以它大约是图像的完整大小。
于是我通过 Linux 的file 命令运行该文件,查看.jpg 扩展名是否是假的,但结果是这样的:
$ file ./matt-thomason-735925-unsplash.jpg
./matt-thomason-735925-unsplash.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, baseline, precision 8, 4032x3024, frames 3
图片来源:https://unsplash.com/photos/YBLvEQ6npQo
为什么这张图片有问题,可能的原因是什么?可能是服务器尝试读取文件时文件以某种方式损坏?
【问题讨论】:
标签: php laravel intervention