Edwin Bermejo
Edwin Bermejo

Reputation: 442

Laravel 5.7 + Intervention Image : Image source not readable

I've create an app that upload image along with title, description & etc. However, i'm having a problem in some of the images to upload, it returns an error ("Image source not readable") as shown below:

enter image description here

Here's my Code:

$image = $request->file('image');
// $image = Input::file('image'); // already tried this one still same problem

$orginal_filename = $image->getClientOriginalName();
$ext = $image->getClientOriginalExtension();
$fileName = md5(microtime() . $orginal_filename) . '.' . $ext;

$img = Image::make($image->getRealPath());
$img->stream();
$img->resize(1200, null, function ($constraint) {
    $constraint->aspectRatio();
}); 

Storage::disk('storage_dir')->put($dir . $fileName, $img, 'public');

Already tried following solutions:

but still have the "Image source not readable" error.

Note: Error only occurs in some images. (I've also tried moving the image(w/c produced the errors) into another directory but still error occurs).

Thank you so much for the help!

Upvotes: 3

Views: 17448

Answers (5)

Enver
Enver

Reputation: 618

If you got this error on your server, you need to be sure you pushed the all images to server. You are facing this error because of server could not find or read to image/images.

-> Be sure image/images uploaded
-> Make readable to image/images.

Upvotes: 0

Yogesh Kumar Dixit
Yogesh Kumar Dixit

Reputation: 11

Replace

$resize = Image::make('storage/app/public/'.$user->image)->resize(300,300);

with

$resize = Image::make(storage_path('app/public/'.$user->image))->resize(300,300);

Give storage full path will solve the problem.

Upvotes: 1

RSorensen
RSorensen

Reputation: 151

If the problem occours in a Laravel 5.7 project, and you store your pictures in the storage folder, it might solve the problem to enter this into the terminal:

php artisan storage:link

(The problem occurs if you have cloned the project from github og bitbucket)

Upvotes: 5

Edwin Bermejo
Edwin Bermejo

Reputation: 442

Sorry for bothering guys! It seemed that it was all my fault not realizing php post_max_size and php upload_max_file_size. Since i was trying to upload an image larger than 8MB i only increased the post_max_size > than the current image file size, but not the upload_max_file_size coz i only increased it by 2 (stated: 4MB).

Thanks btw for the help and suggestions!

Upvotes: 2

benjamintemitope
benjamintemitope

Reputation: 388

You can try running my code

if ($request->file('photo')->isValid()) {
        $avatar = $request->file('photo');

        $filename = time() . '.' . $avatar->getClientOriginalExtension();

        Image::make($avatar)->resize(300, 300)->save( public_path('/uploads/avatars/' . $filename) );

    }

/uploads/avatars/ is my directory

Upvotes: 5

Related Questions