Spread the love

This article will guide you to Check File exist and Create or Replace File Content in Laravel. To perform the file system based operations like Check file exist and create or replace file in laravel. we use File class or Storage 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 file with content in laravel.

Sometimes we want to store raw information in text or json file so for this purpose we need to create the file in our application. File can be open in different modes like append, read only or read and write.

In this article I will use Illuminate\Filesystem\Filesystem class and facade File::put() , File::replace(), File::prepend() and FIle::append() method to create and replace a new file . put Method accepts two parameters as below

1. File::put() : To create new file and add the content

File::put($path, $contents, $lock)

Example Usage:

File::put(public("logs/user.text"),"Simple content");

2. File::replace() : To Replace the content of existing file

File::replace($path, $contents)

Example Usage:

File::replace(public("logs/user.text"),"Simple content");

Here I called put with 2 parameters first parameter tells to the name of file and second parameter to add the contents to the file

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 checkAndCreateFile

php artisan make:controller FileController

and add the below code

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use File;
class FileController extends Controller
{
    public function checkAndCreateFile(Request $request){
        
        
            $storageDestinationPath=public_path("users.log");
         
            if (!File::exists( $storageDestinationPath)) {
                File::put($storageDestinationPath,"This is simple content");
            }
            else{
                File::replace($storageDestinationPath,"This is simple content replaced");
            }
            return response("File created/replaced successfully");
         
  
    }
}

In above code First of all we are checking the file is exist or not then if not available then we are creating the file at the location and if already exist then we are replacing the content of file

Step 3: Create two routes in routes/web.php

Create a route to create the directory

routes/web.php

<?php

use App\Http\Controllers\checkAndCreateFile;
use Illuminate\Support\Facades\Route;

Route::get("/create-file",[FileController::class,"checkAndCreateFile"]);

Leave a Reply