علیرضا مه آبادی
3 سال پیش توسط علیرضا مه آبادی مطرح شد
4 پاسخ

نحوه ویرایش عکس محصول در متد update

درود بر مهندسین عزیز 🌼 بنده برای ویرایش عکس محصول ویرایش انجام میشه فقط می خوام عکس قبلی هم پاک بشه که نمی دونم چه کار کنم.
این بخش آپدیت هست.

 public function update(Request $request, Product $product)
    {
        $data=$request->validate([
            'description'=>'required',
            'price'=>'required',
            'image'=>['required','mimes:png,jpg,jpeg','max:5120']
        ]);
        $file=$request->file('image');
        $file_path='/images/'.now()->year.'/'.now()->month.'/';
        $file->move(public_path($file_path),$file->getClientOriginalName());
        $data['image']=$file_path.$file->getClientOriginalName();
    }

ممنوم اگر راهنماییم کنید🙏


ثبت پرسش جدید
ممدو
تخصص : در حال یادگیری ...
@mamado 3 سال پیش مطرح شد
1

از فساد file استفاده کن و اول چک کن که در پوشه مد نظر وجود داره ، و بعد اونو حذف کن

    $image_path = "/images/filename.ext";  // آدرس عکس در پوشه
if(File::exists($image_path)) {
    File::delete($image_path);
}

علیرضا مه آبادی
تخصص : در حال یادگیری لاراول
@aliasgharkashani1379 3 سال پیش مطرح شد
0

@mamado مهندس از این روش انجام دادم نشد.

 $data=$request->validate([
            'description'=>'required',
            'price'=>'required',
            'image'=>['required','mimes:png,jpg,jpeg','max:5120']
        ]);
        $file=$request->file('image');
        $file_delete='/images/'.now()->year.'/'.now()->month.'/'.$file->getClientOriginalName();
        if (File::exists($file_delete)){
            File::delete($file_delete);
        }

و حتی از این راه

   $data=$request->validate([
            'description'=>'required',
            'price'=>'required',
            'image'=>['required','mimes:png,jpg,jpeg','max:5120']
        ]);
        $file_path=$product->image;
        $file_delete='/images/'.now()->year.'/'.now()->month.'/'.$file_path;
        if (File::exists($file_delete)){
            File::delete($file_delete);
        }

آدرس قرار گیری عکس ها در پوشه public درست هست.


نوب
تخصص : کدنویس نوب :)
@yk5742g 3 سال پیش آپدیت شد
0

@aliasgharkashani1379
داداش داری اشتب میزنی :))

اگر اسم تصویر را به همراه آدرسش ذخیره کردی که اینجوری باید حذفش کنی

$file_path=$product->image;
        if (File::exists($file_path)){
            File::delete($file_path);
        }

اگه فقط اسم تصویر را ذخیره کردی باید بای AllFiles ببینی کجاست و توی کدوم پوشه هست بعدش حذفش کنی
شما داری توی متد آپدیت موقع حذف ماه و سال الانو برمیگردونی / خب ممکنه موقعی که تصویرو ذخیره کردی 6 ماه پیش بوده :)) چجوری بدبخت بفهمه :D


امیر حسین شکوهی
تخصص : web developer
@amirshokoohi 3 سال پیش مطرح شد
0

سلام
پیشنهاد میکنم یک ستون به جدول اضافه کنی تحت عنوان address و file path رو توش ذخیره کنی تو متد store
سپس تو متد آپدیت به آدرست دسترسی داری و میتونی از کد زیر استفاده کنی

if(is_dir($product->address)){
            File::deleteDirectory($product->address);
        }

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

public function update(Request $request, Product $product)

    {

        $data=$request->validate([

            'description'=>'required',

            'price'=>'required',

            'image'=>['required','mimes:png,jpg,jpeg','max:5120']

        ]);

       if(is_dir($product->address)){
            File::deleteDirectory($product->address);
        }

    }

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام