One way to delete a file from the public directory in Laravel is to use the Storage
facade.
To delete a file, you will need to follow the following steps:
The code below demonstrates the process of deleting a file from the public directory.
In this scenario, we have a folder called upload
in the public directory. Within the upload
folder, we have an image file called test.png
.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Storage;
class DemoController extends Controller
{
/**
* Write code on Construct
*
* @return \Illuminate\Http\Response
*/
public function deleteImage(Request $request)
{
if(Storage::exists('upload/test.png')){
Storage::delete('upload/test.png');
/*
Delete Multiple files this way
Storage::delete(['upload/test.png', 'upload/test2.png']);
*/
}else{
dd('File does not exist.');
}
}
}
?>
To delete the test.png
file, the above code first ensures that the folder and file exist through the command Storage::exists('upload/test.png')
. This ensures that upload/test.png
is a valid path.
If the provided path is valid, we delete the file test.png
through the command Storage::delete('upload/test.png');
.
If the file does not exist, the else
branch is chosen, and the 'File does not exist'
message will be displayed.