我使用imagecreatefromjpeg()函数通过上传表单上传图片:
$folder = '../images/';
$image = imagecreatefromjpeg($_FILES['image']['tmp_name']);
$new = imagecreatetruecolor(300, 300);
imagecopyresampled($new, $image, 0, 0, 0, 0, 300, 300, 150, 150);
imagejpeg($new, $folder, 100);
大多数照片上传很好,但有些显示此错误:
警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:gd-jpeg,libjpeg:可恢复错误:损坏的JPEG数据:标记0xed之前的756个无关字节
它似乎发生在一些但不是全部的'.jpeg'文件中 . 我没有看到'.jpg'文件出现问题,但我无法确定问题是'.jpeg'文件所独有的 . 我注意到如果我将问题文件的扩展名从“.jpeg”更改为“.jpg”,它就可以正常工作了 .
为什么在php中使用imagecreatefromjpeg()函数时会收到“Corrupt JPEG data”消息?
3 回答
你刚刚重命名它,还是重新保存在图形程序中?
无论如何,您的文件似乎已被破坏 . 看看Bug #39918 imagecreatefromjpeg doesn't work .
这可以通过以下方式解决:ini_set('gd.jpeg_ignore_warning',1);
尝试添加
@imagecreatefromjpeg($img)
而不是imagecreatefromjpeg($img)
.这里
@
是错误抑制器 .