1

だから私はあきらめます。数え切れないほど多くのフォーラム ウィンドウを開いています。さまざまなことを試しましたが、まだ運がありません。私は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を追加していませんが、できます。別の手順でサイズ変更を試みることができますが、それは問題を先延ばしにしているようです

任意の考えをいただければ幸いです。ご協力いただきありがとうございます!

4

1 に答える 1