2016-10-23 84 views
1

我有這樣的功能,當行被刪除Laravel:文件:刪除不刪檔

public function destroy($id) 
    { 
     $slider = Slider::find($id); 
     $fileName = $slider->image; 
     $fullPath = asset('/images/banner/' . $fileName); 
     //dd($fullPath); 
     File::delete($fullPath); 
     $slider->delete(); 
     return Redirect::to('admin/home-slider'); 
    } 

但門檻不刪除文件恢復刪除的圖像。 我在這裏做錯了什麼?

更新 其他誰可能面臨同樣的問題
在我的情況,我從我的項目中刪除的public之前在此基礎上tutorial
由剛剛從$fullPath
和去除asset解決清理我的網址離開它就是這樣$fullPath = 'images/banner/' . $fileName;
和它現在工作得很好

回答

1

使用base_path(),而不是資產

public function destroy($id) 
    { 
     $slider = Slider::find($id); 
     $fileName = $slider->image; 
     $fullPath = base_path().'/public/images/banner/'. $fileName; 
     //dd($fullPath); 
     File::delete($fullPath); 
     $slider->delete(); 
     return Redirect::to('admin/home-slider'); 
    } 

更新

您可以添加公共文件夾中的所有圖像

enter image description here

+0

我的圖片文件夾存在在我的項目的根目錄,但'BASE_PATH()'將指向'/應用' –

+0

no.base路徑將返回項目目錄的根目錄,並且app_path()將返回應用程序文件夾路徑,並且我相信你在/ public/images/banner/ – iCoders

+0

裏面有圖像yes you are right'app_path()'will return app文件夾路徑,但圖像目錄不在它的根目錄。看看我是否使用'app_path()'我會得到像'C:\ wamp \ www \ gt \ local/images/banner/0kaQfr_5.jpg'這樣的路徑,它應該是這樣的'C:\ wamp \ www \ gt \ images/banner/0kaQfr_5.jpg' –