Вмешательство \ Изображение \ Исключение \ NotReadableException с использованием laravel 4

Я использую laravel 4, и я установил пакет Intervention Image . Когда я использую его в своем коде с методом> изменить размер, -> перемещать и т. Д. И т. Д. И т. Д. … У меня есть эта ошибка:

Intervention \ Image \ Exception \ NotReadableException 

Источник изображения не читается

 open: /Applications/MAMP/htdocs/myNameProject/vendor/intervention/image/src/Intervention/Image/AbstractSource.php break; case $this->isFilePath(): return $this->initFromPath($this->data); break; default: throw new Exception\NotReadableException("Image source not readable"); break; } 

Я также использую MAMP и Sublime Text 3 на MAC OS, если это может вам помочь.

Это мой код в моем контроллере:

 public function upload() { //***** UPLOAD FILE (on server it's an image but an Url in Database *****// // get the input file $file = Image::make('url_Avatar'); //set a register path to the uploaded file $destinationPath = public_path().'upload/'; //have client extension loaded file and set a random name to the uploaded file, produce a random string of length 32 made up of alphanumeric characters [a-zA-z0-9] $filename = $destinationPath . '' . str_random(32) . '.' . $file->getClientOriginalExtension(); //$file->move($destinationPath,$filename); //set $file in order to resize the format and save as an url in database $file= Image::make($image->getRealPath())->resize('200','200')->save('upload/'.$filename); //*****VALIDATORS INPUTS and RULES***** $inputs = Input::all(); $rules = array( 'pseudo' => 'required|between:1,64|unique:profile,pseudo', //urlAvatar is an url in database but we register as an image on the server 'url_Avatar' => 'required|image|min:1', ); 

(Я не показываю вам перенаправление моего представления, но он отлично работает для этого раздела моего контроллера)

вот мой код формы (с использованием шаблона laravel для лезвий):

 @extends('layout.default') @section('title') Name Of My Project - EditProfile @stop @section('content') {{Form::open(array('url'=>'uploadAvatar','files' => true))}} <p> {{Form::label('pseudo','pseudo (*): ')}} {{Form::text('pseudo',Input::old('nom'))}} </p> @if ($errors->has('pseudo')) <p class='error'> {{ $errors->first('pseudo')}}</p> @endif <br> <br> <p> {{Form::label('url_Avatar','Avatar: ')}} {{Form::file('url_Avatar',Input::old('Url_Avatar'))}} </p> @if ($errors->has('url_Avatar')) <p class='error'> {{ $errors->first('url_Avatar')}}</p> @endif <br> <br> <p> {{Form::submit('Validate your avatar')}} </p> {{Form::close()}} @stop 

Конечно, я установил пакет Intervention Image после официального сайта image.intervention.io/getting_started/installation (url).

Как я могу сделать файл «удобочитаемым»? или устранить эту ошибку?

Измените это:

 $file = Image::make('url_Avatar'); 

К этому:

 $file = Input::file('url_Avatar'); // ... $filename = '...'; Image::make($file->getRealPath())->resize('200','200')->save($filename); 

Подробнее о файле в документации Laravel .

если вы используете подпапку в своем общедоступном пути, используйте chmod для изменения разрешения в этой папке, например, cd public; chmod -Rv 755 public/{your_path_name}; cd public; chmod -Rv 755 public/{your_path_name};

Бег

 man chmod; 

Больше подробностей

это в решении

 $filename = str_slug($products->name)."-0.jpg"; $filename_fb = 'fb-'.$filename; $filename_tw = 'tw-'.$filename; $img = Image::make($_FILES['photo']['tmp_name']); // resize image $img->resize(800, 400); // save image $img->save($path.'/'.$filename); 

У меня такая же проблема. Когда я меняю драйвер изображений, все работает нормально.

Попробуйте изменить драйвер изображения из приложения / config / packages / вмешательства / image / config.php с GD на Imagick

Если вы не можете найти файл конфигурации, попробуйте выполнить следующие команды:

Опубликовать конфигурацию в Laravel 5

$ php artisan vendor: опубликуйте –provider = "Intervention \ Image \ ImageServiceProviderLaravel5"

Опубликовать конфигурацию в Laravel 4

$ php artisan config: опубликовать интервенцию / изображение

Пример содержимого из файла конфигурации:

 return array( /* |-------------------------------------------------------------------------- | Image Driver |-------------------------------------------------------------------------- | | Intervention Image supports "GD Library" and "Imagick" to process images | internally. You may choose one of them according to your PHP | configuration. By default PHP's "GD Library" implementation is used. | | Supported: "gd", "imagick" | */ 'driver' => 'imagick' );