دوره آموزشی

دوره آموزشی ۱۰۰ پروژه جاوا اسکریپت + پروژه محور
مبتدی تا پیشرفته در حال ضبط

دوره آموزشی ۱۰۰ پروژه جاوا اسکریپت + پروژه محور

00:00:00
0 دانشجو
رایگان
مشاهده دوره
آموزش پروژه محور ساخت فروشگاه فایل دانلودی با لاراول ۱۳
پیشرفته در حال ضبط

آموزش پروژه محور ساخت فروشگاه فایل دانلودی با لاراول ۱۳

00:38:53
0 دانشجو
1,499,000 تومان
مشاهده دوره
40 تخفیف آموزش حرفه ای طراحی قالب شرکتی بر پایه وردپرس
سطح متوسط تکمیل دوره

آموزش حرفه ای طراحی قالب شرکتی بر پایه وردپرس

08:32:53
3 دانشجو
999,000 599,000 تومان
مشاهده دوره
آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس
پیشرفته تکمیل دوره

آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس

12:09:12
7 دانشجو
1,499,000 تومان
مشاهده دوره

وبلاگ

کار با وابستگی Image Intervention برای آپلود عکس در لاراول

3 دقیقه

کار با وابستگی Image Intervention برای آپلود عکس در لاراول

وابستگی Image Intervention از معروف ترین وابستگی برای آپلود عکس در لاراول است. همین طور که می ببینید که نسخه ۳ این وابستگی تغییرات کلی صورت گرفته است و با کدهای نسخه ۲ آن سازگار نیست و نیاز به تغییراتی دارد.

۱. در جدول users فیلد به نام image ایجاد کنید:

$table->string('image')->nullable();

۲. در فرم فیلد عکس ایجاد کنید:

<div class="col-12">
         <label for="input8" class="form-label">عکس کاربر</label>
         <input type="file" name="image" class="form-control rounded-5 @error('image') is-invalid @enderror" id="input8">
         @error('image')
                <span class="invalid-feedback" role="alert">
                       <strong>{{ $message }}</strong>
                </span>
         @enderror
</div>

۳. وابستگی Image Intervention را نصب کنید که نیازمند PHP 8.1 است.

composer require intervention/image

۴. در ویندوز xampp اکستنشن extension=imagick.so را فعال کنید و در لینوکس دستور زیر را برای نصب Imagick وارد کنید:

sudo apt install php-imagick
php -m | grep imagick
sudo systemctl restart apache2

۵. یک تابع saveImage در User.php ایجاد کنید:

use Intervention\Image\ImageManager;

public static function saveImage($file)
    {
        if ($file){
            $name = $file->hashName();

            $smallImage = ImageManager::imagick()->read($file->getRealPath());
            $bigImage = ImageManager::imagick()->read($file->getRealPath());
            $smallImage->resize(256, 256, function ($constraint){
                $constraint->aspectRatio();
            });

            Storage::disk('local')->put('users/small/'.$name, (string) $smallImage->encodeByMediaType('image/jpeg', 90));
            Storage::disk('local')->put('users/big/'.$name, (string) $bigImage->encodeByMediaType('image/jpeg', 90));

            return $name;

        }else{
            return "";
        }
    }

۶. کد زیر در UserController.php وارد کنید:

public function store(Request $request)
    {
        $image = User::saveImage($request->image);

        User::query()->create([
            'name' => $request->name,
            'email' => $request->email,
            'mobile' => $request->mobile,
            'password' => bcrypt($request->password),
            'image' => $image,
        ]);

        return to_route('users.index');
    }

۷. در قسمت config/filesystem.php کد زیر را وارد کنید:

'local' => 
[
   'driver' => 'local',
   'root' => public_path('images'),
   'throw' => false,
],

۸. برای نمایش عکس کاربر کد زیر را وارد کنید:

@foreach($users as $index=>$row)
<figure>
       <img src="{{asset('images/users/small/' .$row->image)}}" class="rounded-4" width="52px">
</figure>
@endforeach

موفق باشید 🙂

پیوند منابع
لاراول (Laravel) مارس/30/2024 1802 2 دیدگاه
242 
نظرات
  1. رسول گفت:

    این لینک شبکه های اجتماعی رو بردارید بابا روی نوشته ها

دیدگاه شما


© راییوم 05-1402 تمامی حقوق محفوظ است.
قدرت گرفته از وردپرس و طراحی شده با فریم ورک Tani