I try to compress multi images , I have this code before compress:
namespace AppHttpControllers;
use AppHttpResourcesPhotoResource;
use AppModelsApartment;
use IlluminateValidationRule;
use AppModelsPhoto;
use IlluminateHttpJsonResponse;
use IlluminateHttpRequest;
//use InterventionImageFacadesImage;
// use InterventionImageImageManagerStatic as Image;
use IlluminateSupportFacadesStorage;
use IlluminateSupportFacadesValidator;
public function addImages(Request $request)
{
$fields = [
'apartment_id' => 'required|exists:apartments,id',
'images.*' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048',
];
$validator = Validator::make($request->all(), $fields);
if ($validator->fails()) {
$msg = $validator->messages()->first();
return $this->fail($msg);
}
$uploadedImages = [];
$images = $request->file('images');
if (!is_array($images)) {
return $this->fail('Images must be an array.');
}
$apartmentId = $request->input('apartment_id');
foreach ($images as $image) {
$imageName = 'img_' . rand(1, 150000) . '.png';
$dir = "images/apartments_images";
$image->move(public_path($dir), $imageName);
$path = $dir . '/'
.
$imageName;
// $quitUrl = 'http://127.0.0.1:8000/' . $path;
$quitUrl = url($path);
$data = Photo::create([
'url' => $quitUrl,
'apartment_id' => $apartmentId,
]);
$uploadedImages[] = new PhotoResource($data);
}
return $this->success($uploadedImages);
}
and I try to compress multi images by use this line code $img = Image::make($image->getRealPath());
and this line $img->resize(800, null, function ($constraint) { $constraint->aspectRatio(); })->save(public_path($dir . '/' . $imageName), 75);
in complete script
namespace AppHttpControllers;
use AppHttpResourcesPhotoResource;
use AppModelsApartment;
use IlluminateValidationRule;
use AppModelsPhoto;
use IlluminateHttpJsonResponse;
use IlluminateHttpRequest;
use InterventionImageFacadesImage;
// use InterventionImageImageManagerStatic as Image;
use IlluminateSupportFacadesStorage;
use IlluminateSupportFacadesValidator;
public function addImages(Request $request)
{
$fields = [
'apartment_id' => 'required|exists:apartments,id',
'images.*' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048',
];
$validator = Validator::make($request->all(), $fields);
if ($validator->fails()) {
$msg = $validator->messages()->first();
return $this->fail($msg);
}
$uploadedImages = [];
$images = $request->file('images');
if (!is_array($images)) {
return $this->fail('Images must be an array.');
}
$apartmentId = $request->input('apartment_id');
foreach ($images as $image) {
$imageName = 'img_' . rand(1, 150000) . '.png';
$dir = "images/apartments_images";
$image->move(public_path($dir), $imageName);
$path = $dir . '/'
.
$imageName;
$img = Image::make($image->getRealPath());
// Compress the image
$img->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
})->save(public_path($dir . '/' . $imageName), 75);
// $quitUrl = 'http://127.0.0.1:8000/' . $path;
$quitUrl = url($path);
$data = Photo::create([
'url' => $quitUrl,
'apartment_id' => $apartmentId,
]);
$uploadedImages[] = new PhotoResource($data);
}
return $this->success($uploadedImages);
}
but I got this error : InterventionImageFacadesImage not found in file
than I try to Installation the package composer require intervention/image "^2.5"
and I put this code “` ‘aliases’ => [ ‘Image’ => InterventionImageFacadesImage::class ],
but I always got this error :
``` Error: Class 'InterventionImageFacadesImage' not found in file```
and when I put this ``` 'providers' => [ InterventionImageImageServiceProvider::class, ```],
I got this error : ```Class 'InterventionImageImageServiceProvider' not found in file```
FlutterAbuAllan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.