This article will guide you to Check folder exist and Create Nested Folder in Laravel. To perform the file system based operations like Check folder exist and Create a Nested Folder. we use File
class in laravel. Laravel provides inbuilt library to access the file system and we can do multiple robust operations using the libraries. In this tutorial i will show you to make a directory in laravel and also i will show you to create nested folder in using the library. If we perform same operations using the core php functions than it can be a hectic or lengthy code to implement but using the packages or library it will be easier to implement.
In this article I will use Illuminate\Filesystem\Filesystem
class and facade File::makeDirectory()
method to create the new directory in the folder. makeDirectory
Method accepts four parameters as below
File::makeDirectory($path, $mode, $recursive, $force)
Example Usage:
File::makeDirectory(public("images/user/1"), 0777, true);
Here I called makeDirectory
with 3 parameters first parameter tells to create the nested folder as images > user > 1
, second parameter for permission of the folder and third for creating the recursive folders so in nutshell
$path : Path of directory to create.
$mode : Permission of folders
$recursive : Create directory recursively
$force : To create directory forcefully
Let’s understand it with example step by step
Step 1: Create a fresh laravel project
Open a terminal window and type below command to create a new project
composer create-project --prefer-dist laravel/laravel blog
You can also read this to start with new project
Step 2 : Create controller
Let’s create a controller and add method checkAndCreateDirectory
php artisan make:controller FolderController
and add the below code
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use File;
class FolderController extends Controller
{
public function checkAndCreateDirectory(Request $request){
if($request->folder_name!=''){
$storageDestinationPath=storage_path('app/'.$request->folder_name);
if (!File::exists( $storageDestinationPath)) {
File::makeDirectory($storageDestinationPath, 0755, true);
}
return response("Folder created successfully");
}
}
}
In above code First of all we are checking the directory is exist or not then if not available then we are creating the directory at the location.
Step 3: Create two routes in routes/web.php
Create a route to create the directory
routes/web.php
<?php
use App\Http\Controllers\FolderController;
use Illuminate\Support\Facades\Route;
Route::get("/create-directory",[FolderController::class,"checkAndCreateDirectory"]);