如何使用表格从公众中删除图像?

Gab*_*izz 5 laravel

我编写了产品注册程序,并上传了图像。此图像保存到公共/存储/产品。有一个输入字段用于输入图像的名称,并且图像被赋予该名称,并且该名称与图像扩展名一起保存在数据库中。我想知道当我单击删除时如何从公共/存储/产品文件夹中删除此图像。

我在下面尝试的方法不起作用控制器:

public function store(Request $request)
{   
    $nameFile = $request->input('imageName', '');
    if($request->file('imageProduct')->isValid()){
        $nameFile .= '.' . $request->file('imageProduct')->getClientOriginalExtension();
        $request->file('imageProduct')->storeAs('products', $nameFile);
    }

    $product = new Product();

    $product->name = $request->input('name');
    $product->price = $request->input('price');
    $product->imageName = $nameFile;

    $product->save(); 

    return redirect()->route('ProductControllerIndex');
}

public function destroy($id)
{   
    $products = Product::all();
    $filePathName = 'products/' . $products->imageName;
    if( file_exists($filePathName) ){
        unlink($filePathName);
    }
    // $delete = Product::find($id);
    // if(!$delete)
    //     return redirect()->route('ProductControllerCreate');
    
    // $delete->delete();
    // return redirect()->route('ProductControllerCreate');
}
Run Code Online (Sandbox Code Playgroud)

}

看法:

<form action="{{ route('ProductControllerDestroy', $product->id) }}" method="post">
   @csrf
   @method('DELETE')

   <input type="submit" value="Remover">
</form>
Run Code Online (Sandbox Code Playgroud)

Dil*_*ara 2

您已在那里添加公共路径。检查下面的代码。

    $product = Product::find($id);
    $filePathName = public_path().'/products/'. $products->imageName;
    if( file_exists($filePathName) ){
        unlink($filePathName);
    }
Run Code Online (Sandbox Code Playgroud)