درود بر مهندسین عزیز 🌼 بنده برای ویرایش عکس محصول ویرایش انجام میشه فقط می خوام عکس قبلی هم پاک بشه که نمی دونم چه کار کنم.
این بخش آپدیت هست.
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();
}
ممنوم اگر راهنماییم کنید🙏
از فساد file استفاده کن و اول چک کن که در پوشه مد نظر وجود داره ، و بعد اونو حذف کن
$image_path = "/images/filename.ext"; // آدرس عکس در پوشه
if(File::exists($image_path)) {
File::delete($image_path);
}
@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 درست هست.
@aliasgharkashani1379
داداش داری اشتب میزنی :))
اگر اسم تصویر را به همراه آدرسش ذخیره کردی که اینجوری باید حذفش کنی
$file_path=$product->image;
if (File::exists($file_path)){
File::delete($file_path);
}
اگه فقط اسم تصویر را ذخیره کردی باید بای AllFiles ببینی کجاست و توی کدوم پوشه هست بعدش حذفش کنی
شما داری توی متد آپدیت موقع حذف ماه و سال الانو برمیگردونی / خب ممکنه موقعی که تصویرو ذخیره کردی 6 ماه پیش بوده :)) چجوری بدبخت بفهمه :D
سلام
پیشنهاد میکنم یک ستون به جدول اضافه کنی تحت عنوان 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);
}
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟