I want to resize the images I upload with Intervention/image but I don't know how.
I tried a few methods of uploading it resized but I don't know how to make it work. The function storeImage is where i want to resize it.
HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Carbon\Carbon;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File;
use Intervention\Image\ImageManager;
use Intervention\Image\Facades\Image;
class HomeController extends Controller
{
public function update(User $user){
$user = auth()->user();
$user-> name = request('name');
$user-> phone = request('phone');
$user-> image = request('image');
$oldFilename = $user->image;
$this->storeImage($user);
File::delete(public_path('images'),$oldFilename);
$imageExtensions = ['jpg', 'jpeg', 'gif', 'png', 'bmp', 'svg', 'svgz', 'cgm', 'djv', 'djvu', 'ico', 'ief','jpe', 'pbm', 'pgm', 'pnm', 'ppm', 'ras', 'rgb', 'tif', 'tiff', 'wbmp', 'xbm', 'xpm', 'xwd'];
$foo = \File::extension($user->image);
if(in_array($foo, $imageExtensions))
{
$user->save();
}
return redirect('user/account');
}
private function storeImage($user){
if(request()->has('image')){
$user->image = $user->email.'.'.request()->image->getClientOriginalExtension();
$imageExtensions = ['jpg', 'jpeg', 'gif', 'png', 'bmp', 'svg', 'svgz', 'cgm', 'djv', 'djvu', 'ico', 'ief','jpe', 'pbm', 'pgm', 'pnm', 'ppm', 'ras', 'rgb', 'tif', 'tiff', 'wbmp', 'xbm', 'xpm', 'xwd'];
$foo = \File::extension($user->image);
if(in_array($foo, $imageExtensions))
{
$file = request()->image;
$img = Image::make($file->getRealPath())->resize(320, 240);
$img->move(public_path('images'), $user->image);
}
}
}
}
It throws me the error:
Command (Move) is not available for driver (Gd).
I solved it with save and
$img->save(public_path('images'.$user->image));
but it doesn't move image to the folder. How can I solve that? Thank you