laravel - 如何使用表单从公众中删除图像?

标签 laravel

我编写了一个产品注册程序,然后上传了一张图片。此图像保存到公共(public)/存储/产品。有一个输入字段用于输入图像的名称,图像被赋予这个名称,该名称与图像扩展名一起保存在数据库中。我想知道如何在单击删除时从 public/storage/products 文件夹中删除此图像。
我下面试过的方法没用
Controller :

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');
}
}
看法:
<form action="{{ route('ProductControllerDestroy', $product->id) }}" method="post">
   @csrf
   @method('DELETE')

   <input type="submit" value="Remover">
</form>

最佳答案

您在那里添加了公共(public)路径。检查下面的代码。

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

关于laravel - 如何使用表单从公众中删除图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62720029/

相关文章:

javascript - Laravel - 将 JSON 响应包装在文本区域中

laravel - 不能在 Laravel 8 中使用旧工厂

mysql - 如何在 Laravel 5.5 中的每个新连接上设置 mysql 用户变量?

php - 拉维尔 5.2 : How to retrieve data from one to one eloquent (hasOne) Relationship

php - Laravel Eloquent Pagination,如何在使用过滤器分页之前进行计数?

php - Laravel 无法将数据发送到 Controller

php - 使用 Carbon PHP 格式化日期

javascript - laravel 无法使用 ajax 服务器状态 419 发布数据

javascript - 使用 AJAX 将 PDF 文件发送到服务器 (PHP LARAVEL)

php - Form::模型 Eloquent 绑定(bind)