如何在laravel中更新图像时从目标文件夹中删除旧图像?

时间:2016-06-28 05:59:17

标签: file-upload laravel-5

我已完成图像更新功能。以下代码仅更新数据库中的文件名,但我需要在更新时从目标文件夹中删除旧图像,否则文件夹大小将变得太大。任何想法都会很棒。这是我的代码。

public function updateQuoteItemImage($image){

 $file=Input::file('filename');
 $random_name=str_random(8);
 $destinationPath='images/';
 $extension=$file->getClientOriginalExtension();
 $filename=$random_name.'_quote_itm_image.'.$extension;  
 $byte=File::size($file); //get size of file
 $uploadSuccess=Input::file('filename')->move($destinationPath,$filename);
 $data=QuoteItemImage::findOrFail($image->id);
 $data->quote_item_id=$image->quote_item_id;
 $data->filename=$filename;
 $data->filesize=$byte;
 $data->save();
return Common::getJsonResponse(true, 'image updated', 200);

 }

2 个答案:

答案 0 :(得分:0)

您可以使用取消链接功能删除所需的文件。请看下面的示例:

unlink(public_path('name-of-folder') . $nameOfImage);

答案 1 :(得分:0)

您可以在更新记录之前添加文件:: delete。

remove_action( 'genesis_entry_header', 'genesis_entry_header_markup_open', 5 );
remove_action( 'genesis_entry_header', 'genesis_do_post_title' );
remove_action( 'genesis_entry_header', 'genesis_entry_header_markup_close', 15 );