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.