Php 删除表中的行后,如何删除图像?

Php 删除表中的行后,如何删除图像?,php,laravel,Php,Laravel,删除表中的行后,如何删除图像 产品控制员: 存储功能 public function store(Request $request) { $product = new Product(); $request->validate([ 'name' => 'required', 'category_id' => 'required', 'image' => 'r

删除表中的行后,如何删除图像

产品控制员:

存储功能

public function store(Request $request)
    {

        $product = new Product();

        $request->validate([
            'name' => 'required',
            'category_id' => 'required',
            'image' => 'required',
            'description' => 'required|min:1',
            'tag' => 'required'
        ]);

        if($request->hasFile('image')){
            $image = $request->file('image');
            $filename = $request->name;
            $foldername = $request->name;
            $imagename = $filename .'.' . $request->image->extension();
            $path = public_path('images/produse/'. $filename .'/');

            if(!File::exists($path)){
                File::makeDirectory($path, 0777, true, true);
            }

            Image::make($image)->resize(200, 200)->save( public_path('images/produse/' . $foldername .  '/' . $imagename ));
        }

        $product->name = $request->name;
        $product->category_id = $request->category_id;
        $product->description = $request->description;
        $product->tag = $request->tag;
        $product->image = "/$foldername/$imagename";
        $product->save();

        return redirect('/products')->with('success', 'Produs adaugat cu succes !');
    }
public function destroy(Product $product)
    {
        $product->delete();

        return redirect('/products')->with('danger', 'Produs sters cu succes !');
    }
删除函数

public function store(Request $request)
    {

        $product = new Product();

        $request->validate([
            'name' => 'required',
            'category_id' => 'required',
            'image' => 'required',
            'description' => 'required|min:1',
            'tag' => 'required'
        ]);

        if($request->hasFile('image')){
            $image = $request->file('image');
            $filename = $request->name;
            $foldername = $request->name;
            $imagename = $filename .'.' . $request->image->extension();
            $path = public_path('images/produse/'. $filename .'/');

            if(!File::exists($path)){
                File::makeDirectory($path, 0777, true, true);
            }

            Image::make($image)->resize(200, 200)->save( public_path('images/produse/' . $foldername .  '/' . $imagename ));
        }

        $product->name = $request->name;
        $product->category_id = $request->category_id;
        $product->description = $request->description;
        $product->tag = $request->tag;
        $product->image = "/$foldername/$imagename";
        $product->save();

        return redirect('/products')->with('success', 'Produs adaugat cu succes !');
    }
public function destroy(Product $product)
    {
        $product->delete();

        return redirect('/products')->with('danger', 'Produs sters cu succes !');
    }

我想在删除产品时,删除带有该图像的文件夹。。如何执行此操作?

如果要将图像的完整路径保存到产品中,可以检查公用文件夹中是否存在该文件,然后将其删除:

public function destroy(Product $product)
    {
        $image_path = public_path($product->image);
        if (File::exists($image_path)) {
           //File::delete($image_path) or;
           unlink($image_path);
        }
        $product->delete();

    return redirect('/products')->with('danger', 'Produs sters cu succes !');
}
编辑:

如果要删除整个文件夹,可以使用:

File::deleteDirectory(public_path('path/to/your/folder'));

如果要将图像的完整路径保存到产品中,可以检查公用文件夹中是否存在该文件,然后将其删除:

public function destroy(Product $product)
    {
        $image_path = public_path($product->image);
        if (File::exists($image_path)) {
           //File::delete($image_path) or;
           unlink($image_path);
        }
        $product->delete();

    return redirect('/products')->with('danger', 'Produs sters cu succes !');
}
编辑:

如果要删除整个文件夹,可以使用:

File::deleteDirectory(public_path('path/to/your/folder'));
你可以这样用

use File;
在页眉部分添加上面的行

public function destroy(Product $product)
{

    $originalPath  = getcwd()."/images/{$product-> image}";

    if(File::exists($originalPath)){
         File::delete($originalPath);
    }

    $product->delete();

    return redirect('/products')->with('danger', 'Produs sters cu succes !');
}
您可以这样使用

use File;
在页眉部分添加上面的行

public function destroy(Product $product)
{

    $originalPath  = getcwd()."/images/{$product-> image}";

    if(File::exists($originalPath)){
         File::delete($originalPath);
    }

    $product->delete();

    return redirect('/products')->with('danger', 'Produs sters cu succes !');
}

在删除和取消链接/删除该文件之前,请按照此操作获取
$product->image
。在删除和取消链接/删除该文件之前,获取
$product->image
。所以它只会删除我的图片,我希望所有内容都有一个文件夹:):-?我更新了我的答案,你可以检查它。所以它只会删除我的图片,我希望所有内容都有一个文件夹:):-?我更新了我的答案,你可以检查它。