رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
حذف فایل عکس
#1
سلام خدمت دوستان
بنده چنین کدی برای پاک کردن عکس ها نوشتم
public function delete()
    {
       parent::delete(); // TODO: Change the autogenerated stub
       File::delete($this->path);
   }
عکس ها از دیتابیس پاک میشوند ولی از پوشه مربوطه پاک نمیشوند
چرا File::delete کار نمیکند
من از fecade استفاده میکنم

path های من هم در دیتابیس بدین شکل هستند و همه چیز ظاهرا درست هست . نمیدونم مشکل کجاست

نقل قول:

/images/photos/148305482612353922_578329245654280_100412195_n.jpg
انگار که نیستی ، چو هستی خوش باش
حکیم عمر خیام
پاسخ
تشکر شده توسط:
#2
برای حذف فایل اگر آن در فولدر storage قرار دارد مثلا در چنین مسیری storage/app/public/images/1.jpg می تونید با کلاس Storage آن را حذف کنید:
Storage::disk('public')->delete('images/1.jpg');

وگرنه می توانید با دادن مسیر کامل فایل با تابع unlink آن را حذف کنید:
unlink(storage_path('app/public/images/1.jpg'));
موفقیت، نتیجه تشخیص درست است؛ تشخیص درست، نتیجه تجربه است؛ تجربه نیز اغلب نتیجه تشخیص نادرست است.



پاسخ
تشکر شده توسط: meysam1366
#3
خیر محتویات داخل پوشه public هست و ربطی به storage نداره
و من داخل مدل photo این کد شما رو نوشتم ولی متاسفانه جواب نمیده
  public function delete()
   {
       parent::delete(); // TODO: Change the autogenerated stub
       unlink('public'.$this->path);
   }

و همچنین
unlink($this->path);

اگر هم
 unlink(storage_path($this->path));
را بنویسم هم باز خطا میدهد

اینم از خطا ها

کد:
unlink(/images/399fc4df8dc027acd27373c3fddee632.jpg): No such file or directory
همشون تقریبا همین ارور رو میدن که فایل پیدا نشد
انگار که نیستی ، چو هستی خوش باش
حکیم عمر خیام
پاسخ
تشکر شده توسط:
#4
اگر در فولدر public هست با Unlink و دادن مسیر کامل فایل و با فرض اینکه فایل در این مسیر هست Public/images/1.jpg:
unlink(public_path('images/1.jpg'));
موفقیت، نتیجه تشخیص درست است؛ تشخیص درست، نتیجه تجربه است؛ تجربه نیز اغلب نتیجه تشخیص نادرست است.



پاسخ
تشکر شده توسط: tabesh




کاربران در حال بازدید این موضوع: 2 مهمان