我编写了产品注册程序,并上传了图像。此图像保存到公共/存储/产品。有一个输入字段用于输入图像的名称,并且图像被赋予该名称,并且该名称与图像扩展名一起保存在数据库中。我想知道当我单击删除时如何从公共/存储/产品文件夹中删除此图像。
我在下面尝试的方法不起作用控制器:
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)
您已在那里添加公共路径。检查下面的代码。
$product = Product::find($id);
$filePathName = public_path().'/products/'. $products->imageName;
if( file_exists($filePathName) ){
unlink($filePathName);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |