簡體   English   中英

更新 Laravel 8 中的圖像后如何從公共文件夾中刪除圖像

[英]How to Delete Images from a folder in Public after update of the image in Laravel 8

我嘗試更新包含文件(圖像)的表單並刪除舊圖像。 更新工作正常,但舊圖像無法刪除。 我試過這段代碼,但圖像沒有被刪除。 請幫我。 提前致謝。

public function update(Request $request, $id)
{
    $slug   = SlugService::createSlug(Category::class, 'slug', $request->title);
    $request->validate([
        'title'=>'required',
        'category_image'=>'image'
    ]);
    if ($request->hasFile('category_image')) {
        $image          = $request->file('category_image');
        $newImageName   = uniqid().'-'.$request->title.'.'.$image->getClientOriginalExtension();
        $location       = public_path('/categoryImage');
        $OldImage       = public_path('categoryImage/'.$request->category_image);
        $image->move($location, $newImageName);
        Storage::delete($OldImage);
    }else {
        $newImageName   = $request->category_image;
    }
    Category::where('id', $id)->update([
       'slug'=>$slug,
       'title'=>$request->input('title'),
       'details'=>$request->input('details'),
       'category_image'=>$newImageName
    ]);
    return redirect('category')->with('success', 'Category Successfully Updated');
}

您可以像這樣刪除舊圖像,如果圖像不在存儲的根目錄中,則在圖像名稱之前將文件位置插入存儲中。

unlink(storage_path('/location_inside_storage/'.$OldImage));

公共 function 更新(請求 $request,$id){...

$category = Category::find($id); #new

if ($request->hasFile('category_image')) {
    $image          = $request->file('category_image');
    $newImageName   = uniqid().'-'.$request->title.'.'.$image->getClientOriginalExtension();
    $location       = public_path('/categoryImage');
    $OldImage       = public_path('categoryImage/'.$category->category_image); #new
    $image->move($location, $newImageName);
    unlink($OldImage); #new
}else {
    $newImageName   = $request->category_image;
}

#you can simplify this as
$category->slug = $slug;
$category->title = $request->title;
$category->details = $request->details;
$category->category_image = $newImageName;
$category->save()

return redirect('category')->with('success', 'Category Successfully Updated');

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM