Saving file into new directory using fwrite

10,780

Solution 1

You should check that folder exists and if not to create it. Your code should look like:

<?php

function saveFile($filename,$filecontent){
    if (strlen($filename)>0){
        $folderPath = 'temp';
        if (!file_exists($folderPath)) {
            mkdir($folderPath);
        }
        $file = @fopen($folderPath . DIRECTORY_SEPARATOR . $filename,"w");
        if ($file != false){
            fwrite($file,$filecontent);
            fclose($file);
            return 1;
        }
        return -2;
    }
    return -1;
}

?>

Also I've improved another part of your code to avoid multiple calls to the function if something goes wrong.

<?php
        $fileSavingResult = saveFile($filename, $filecontent);
        if ( fileSavingResult == 1){
            echo "<tr><td><br/>File was saved!<br/><br/></td></tr>";
        } else if (fileSavingResult == -2){
            echo "<tr><td><br/>An error occured during saving file!<br/><br/></td></tr>";
        } else if (fileSavingResult == -1){
            echo "<tr><td><br/>Wrong file name!<br/><br/></td></tr>";
        }

?>

Solution 2

$tempFile = fopen( "temp/filename", "w" );
fwrite( $tempFile, $filecontent );
Share:
10,780
Woody
Author by

Woody

Just about too old to learn anything other than DOS. Been using computers since the timex-sinclair days and graduated up to commodore and 300 baud modem.

Updated on September 02, 2022

Comments

  • Woody
    Woody over 1 year

    I have a simple PHP script that writes a file into directory where located, but need to have it written into a directory called "temp".

    There are many answers here on the subject, but can't seem to find what I need. Have reviewedhttp://us2.php.net/manual/en/function.fwrite.php with no luck.

    Here is the basic PHP without the form part:

    <?php
    
    function saveFile($filename,$filecontent){
        if (strlen($filename)>0){
            $file = @fopen($filename,"w");
            if ($file != false){
                fwrite($file,$filecontent);
                fclose($file);
                return 1;
            }
            return -2;
        }
        return -1;
    }
    
    ?>
    

    This appears below the /form tag:

    <?php    
    
        if (isset($_POST['submitBtn'])){
            $filename    = (isset($_POST['filename']))    ? $_POST['filename']    : '' ;
            $filecontent = (isset($_POST['filecontent'])) ? $_POST['filecontent'] : '' ;
    
    ?>
    

    and then:

    <?php
    
            if (saveFile($filename,$filecontent) == 1){
                echo "<tr><td><br/>File was saved!<br/><br/></td></tr>";
            } else if (saveFile($filename,$filecontent) == -2){
                echo "<tr><td><br/>An error occured during saving file!<br/><br/></td></tr>";
            } else if (saveFile($filename,$filecontent) == -1){
                echo "<tr><td><br/>Wrong file name!<br/><br/></td></tr>";
            }
    
    ?>
    

    Thanks for input.