だから私はあきらめます。数え切れないほど多くのフォーラム ウィンドウを開いています。さまざまなことを試しましたが、まだ運がありません。私は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.jpegではなくcreateimagefromstringを試しました
私は考えています/疑問に思っています-エラーを正しく抑制していない場合。-imagick とは対照的に、gd ライブラリの問題です。まだimagickを追加していませんが、できます。別の手順でサイズ変更を試みることができますが、それは問題を先延ばしにしているようです
任意の考えをいただければ幸いです。ご協力いただきありがとうございます!