Laravel 5文件删除错误

Jis*_*d P 6 php mysql file delete-file laravel-5

关于文件删除,我的laravel 5 Web应用程序存在一个问题.

我想从我的表中删除一个带有相应图像文件的条目.这是我的表格结构.

 Schema::create('master_brands',function($table){
        $table->increments('pk_brand_id');
        $table->string('brand_name');
        $table->string('brand_logo');
        $table->timestamps();
    });
Run Code Online (Sandbox Code Playgroud)

我在db中添加了3个品牌,并在brand_logo字段中存储图像路径,如:(/ uploads/masters/logocatagory_Computers&IT.png).

从数据库中删除记录时我也想从uploads文件夹中删除图像文件.但是当我执行删除操作时,文件没有删除.这是我的删除控制器.

  public function branddelete($id)
  {
    $filename = DB::table('master_brands')->where('pk_brand_id', $id)->get();
    $filname =  url()."/app".$filename[0]->brand_logo;
    File::delete($filname); // http://localhost/genie-works/devojp/app//uploads/masters/logocatagory_Computers & IT.png
  }
Run Code Online (Sandbox Code Playgroud)

该文件存在于我的目录中,并且该目录具有777权限.!

我也试过Storage类来删除文件.但是没有办法!!! ..

我该如何解决这个问题?有任何想法吗... :(

Eme*_*bah 7

你这样做是错误的.您不可能从URL中删除文件,您必须提供文件PATH而不是URL

编辑

假设您要删除的文件位于public/uploads/masters/logocatagory_Computers您可以执行此操作:

public function branddelete($id)
{
    $filename = DB::table('master_brands')->where('pk_brand_id', $id)->get();
    $filname =  $filename[0]->brand_logo; 
    //example it.png, which is located in `public/uploads/masters/logocatagory_Computers` folder
    $file_path = app_path("uploads/masters/logocatagory_Computers/{$filname}");

    if(File::exists($file_path)) File::delete($file_path); 
}
Run Code Online (Sandbox Code Playgroud)