所以我放弃了。我打开的论坛窗口数不胜数,尝试了很多不同的东西,但仍然没有运气。我已经安装了 laravel 5.0 的干预,并且可以通过一些图像,但其他(很多)却出现以下错误
Decoder.php 第 35 行中的 ErrorException:imagecreatefromjpeg():gd-jpeg,libjpeg:可恢复错误:损坏的 JPEG 数据:标记 0xd9 之前的 1130 个无关字节
use Intervention\Image\ImageManager;
//use Intervention\Image\Image;
//use Intervention\Image\Facades\Image;
use Image;
public function storepic($id)
{
$gallry=auth()->user()->galleries()->findorfail($id);
$files = Input::file('images');
// Making counting of uploaded images
$file_count = count($files);
// start count how many uploaded
$uploadcount = 0;
ini_set('gd.jpeg_ignore_warning', true);
$dt=Carbon::now();
Carbon::setToStringFormat('omj_His');
foreach($files as $file) {
$rules = array('file' =>'required|mimes:png,gif,jpeg,jpg');
$d=array('file'=> $file);
$ext=$file->getClientOriginalExtension();
$mim=$file->getClientMimeType();
$validator = Validator::make($d, $rules);
if($validator->passes()){
//save file
$upPath = 'uploads/galleries/' . $id . '/';
$filename = $dt . $file->getClientOriginalName() ;
$upload_success = $file->move($upPath, $filename);
// save to db
$imag['oFileName']=$file->getClientOriginalName() ;
$imag['sFileName']=$filename;
$imag['gid']=$id;
$pic=new Pictures($imag);
$pic->save();
if ($gallry['img_id']==null){
$gallry['img_id']=$pic['pid'];
$gallry->save();
}
//create thumbnail
$path = 'uploads/thumbs/' . $id . '/';
// below used to all be one statement - it didn't effect it either way
$img= Image::make($upPath . $filename);
$img->resize(null, 100, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
});
$img->save($path . $filename);
$uploadcount ++;
}
}
所以我尝试 1. 使用 ini_set('gd.jpeg_ignore_warning', true); 抑制错误;在多个地方 2. 使用二进制重新创建图像,这将图像大小扩大到 5 倍 3. 尝试 createimagefromstring 而不是 jpeg
我在想/想知道 - 如果我没有正确地抑制错误。- 是 gd 库而不是 imagick 的问题。我还没有添加imagick,但是可以,这似乎很痛苦-我可以尝试在另一个过程中调整大小,但这似乎只是在推迟问题
任何想法将不胜感激。感谢您的帮助!