• 1400/10/05

حذف عکس از فولدر بعد از حذف رکورد :

سلام استاد وقت بخیر 

من برای پروژه ام تمام softdelet هارو برداشتم چون نیازی به این موضوع نبود ، حالا میخوام زمانی که رکوردی از دیتابیس حذف میشه عملیات حذف عکس هم از فولدر انجام بشه ، ممنون میشم راهنمایی بفرمایید.

  • 1400/10/05
  • ساعت 13:35

سلام وقت بخیر

 

باید دستی بنویسید این مورد رو تا remove بشه


  • 1400/10/05
  • ساعت 16:24

میشه راهنمایی بفرمایید 

خیلی سعی کردم ولی نشد استاد


  • 1400/10/05
  • ساعت 16:41

توی متد destroy post اول عکس پست رو unlink کنید بعد خود پست رو پاک کنید

 

بهتره براش یک متد جدید بسازید


  • 1400/10/05
  • ساعت 16:57

ممنون از وقتی که در اختیارم قرار میدیدن استاد

من به این صورت نوشتم ولی هیچ اتفاقی نمیفته وقتی dd میگیرم میگه همچین فایل یا فولدری وجود نداره

public function destroy($id)
    {
        $product = Product::find($id);
        $path = $product->product_image_instagram ;
      
     }

زمان که با این dd میگیرم به این صورت بر میگردونه 

string(55) "/images/products/2021/Dec/26/2021_12_26_12_02_11_36.jpg"

حالا من آدرس ذخیره شده فایل رو دارم ، اما باید به خود پوشه هم برم و من به این صورت عمل کردم

$path = dirname(__FILE__) . $product->product_image_instagram ;

زمانی که dd میگیرم این مقدار بر میگرده

string(106) "G:\wamp64\www\jahanshiri\app\Http\Controllers\Admin/images/products/2021/Dec/26/2021_12_26_12_02_11_36.jpg"

و زمانی که میخوام unlink کنم میگه هیچ فایلی در این مسیر وجود ندارد 

Warning: unlink(G:\wamp64\www\jahanshiri\app\Http\Controllers\Admin/images/products/2021/Dec/26/2021_12_26_12_02_11_36.jpg): No such file or directory in G:\wamp64\www\jahanshiri\app\Http\Controllers\Admin\ProductController.php on line 114
bool(false)

، ممنون میشم راهنمایی بفرمایید

 

 


  • 1400/10/05
  • ساعت 19:10

حل شد استاد

public function destroy($id)
 {
        $product = Product::find($id);
        $path = $product->product_image ;
        $path_ins = $product->product_image_instagram;
        $path_tel = $product->product_image_telegram;
        $path_div = $product->product_image_divar;

        $currentDir = $_SERVER['DOCUMENT_ROOT'] . $path;
        $currentDirIns = $_SERVER['DOCUMENT_ROOT'] . $path_ins;
        $currentDirTel = $_SERVER['DOCUMENT_ROOT'] . $path_tel;
        $currentDirDiv = $_SERVER['DOCUMENT_ROOT'] . $path_div;
        
        unlink($currentDir);
        unlink($currentDirIns);
        unlink($currentDirTel);
        unlink($currentDirDiv);
        
        Product::delete($id);
        return back()
 }

  • 1400/10/05
  • ساعت 20:20

عالی