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类来删除文件.但是没有办法!!! ..
我该如何解决这个问题?有任何想法吗... :(
你这样做是错误的.您不可能从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)