mehdi SH
6 سال پیش توسط mehdi SH مطرح شد
1 پاسخ

حذف کردن فایل تصویر قدیمی در هنگام اپدیت تصویر

سلام
من نمیدونم چطوری میشه فایل تصویری که قبلا insert شده را موقع آپدیت حذف کرد

    <?php

    namespace AppHttpControllersAdmin;

    use IlluminateHttpRequest;
    use AppHttpControllersController;
    use InterventionImageFacadesImage;

    class AdminController extends Controller
    {
        public function ImageUploader($file)
        {
               $FileName = time().".".$file->getClientOriginalName();
               $path = public_path('/Uploads/');
               $Files = $file->move($path,$FileName);

               $img = Image::make($Files->getRealPath());
               $img->resize(200,150);
               $img->save($path."small-".$FileName);

               return '/Uploads/'.$FileName;
        }
        public function ImageUploader1($file,$paths)
        {
            $filename=time()."-".$file->getClientOriginalName();
            $path=public_path($paths);
            $files=$file->move($path,$filename);
            $img=Image::make($files->getRealPath());
            $img->resize(200,150);
            $img->save($path."small-".$filename);
            return $paths.$filename;
        }

این product

    <?php

    namespace AppHttpControllersAdmin;

    use AppCategory;
    use AppProduct;
    use IlluminateHttpRequest;
    use AppHttpControllersController;

    class ProductController extends AdminController
    {
        /**
         * Display a listing of the resource.
         *
         * @return IlluminateHttpResponse
         */
        public function index()
        {
            $products = Product::latest()->paginate(3);
            return view('admin.product.index',compact('products'));

        }

        /**
         * Show the form for creating a new resource.
         *
         * @return IlluminateHttpResponse
         */
        public function create()
        {
            $cats = Category::where('chid','!=','0')->get();
            return view('admin.product.create',compact('cats'));
        }

        /**
         * Store a newly created resource in storage.
         *
         * @param  IlluminateHttpRequest  $request
         * @return IlluminateHttpResponse
         */
        public function store(Request $request)
        {
            $this->validate($request,[
               'name'=>'required',
               'brand'=>'required',
               'price'=>'required|numeric',
               'discount'=>'required|numeric',
               'image'=>'image',
               'count'=>'required',
            ],[
                'brand.required'=>'فیلد برند الزامی است',
                'price.required'=>'فیلد قیمت الزامی است',
                'price.numeric'=>'باید عدد وارد کنید',
                'discount.required'=>'فیلد تخفیف الزامی است',
                'discount.numeric'=>'باید عدد وارد کنید',
                'image.image'=>'فایل باید فرمت عکس داشته باشد',
                'count.required'=>'فیلد موجودی الزامی است',
            ]);

            $file =$request['image'];
            $img =$this->ImageUploader($file);
            $user=auth()->user()->id;

            $pro= Product::create([
               'name'=>$request['name'],
               'brand'=>$request['brand'],
               'price'=>$request['price'],
               'discount'=>$request['discount'],
               'image'=>$img,
               'status'=>$request['status'],
               'count'=>$request['count'],
                'user_id'=>$user,

            ]);
                $pro->category()->sync($request->input('chid'));
            return  redirect(route('products.index'))->with('success','محصول مورد نظر با موفقیت اضافه شد');
        }

        /**
         * Display the specified resource.
         *
         * @param  AppProduct  $product
         * @return IlluminateHttpResponse
         */
        public function show(Product $product)
        {
            //
        }

        /**
         * Show the form for editing the specified resource.
         *
         * @param  AppProduct  $product
         * @return IlluminateHttpResponse
         */
        public function edit(Product $product)
        {
            return view('admin.product.edit',compact('product'));
        }

        /**
         * Update the specified resource in storage.
         *
         * @param  IlluminateHttpRequest  $request
         * @param  AppProduct  $product
         * @return IlluminateHttpResponse
         */
        public function update(Request $request, Product $product)
        {
            $this->validate($request,[
                'name'=>'required',
                'brand'=>'required',
                'price'=>'required|numeric',
                'discount'=>'required|numeric',
                'image'=>'image',
                'status'=>'required',
            ],[
                'name.required'=>'نام محصول الزامی است',
                'brand.required'=>'نام برند الزامی است',
                'price.required'=>' قیمت الزامی است',
                'price.numeric'=>'باید عدد وارد کنید',
                'discount.required'=>' تخفیف الزامی است',
                'discount.numeric'=>'باید عدد وارد کنید',
                'image.image'=>'فایل باید فرمت عکس داشته باشد',
                'status.required'=>' وضعیت الزامی است',
            ]);
            $imageUrl = $request->file('image');
            $input = $request->all();
            if ($imageUrl){
                $input ['image'] = $this->ImageUploader($request->file('image'));
            }
            $product->update($input);
            return  redirect(route('products.index'))->with('success','محصول مورد نظر با موفقیت ویرایش شد');

        }

        /**
         * Remove the specified resource from storage.
         *
         * @param  AppProduct  $product
         * @return IlluminateHttpResponse
         */
        public function destroy(Product $product)
        {

            $product->delete();
            return  back()->with('error','محصول مورد نظر با موفقیت حذف شد');
        }
    }

ثبت پرسش جدید
اسدی
تخصص : لاراول
@azhidhak 6 سال پیش آپدیت شد
0
if (file_exists(public_path($product->image)))  
unlink(public_path($product->image));

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

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