• PHP Video Tutorials

PHP Filesystem move_uploaded_file() Function



The PHP Filesystem move_uploaded_file() function is used to move an uploaded file to new location. If the filename is not a valid upload file, then no action can occur and return false. If the filename is a valid upload file but can not be moved for some reason, then no action can occur and return false. Additionally, a warning can be issued.

Syntax

Below is the syntax of the PHP Filesystem move_uploaded_file() function −

bool move_uploaded_file ( string $filename , string $destination )

Parameters

Below are the required parameters of the move_uploaded_file() function −

Sr.No Parameter & Description
1

$filename(Required)

It is filename of the uploaded file.

2

$destination(Required)

It is the destination of the moved file.

Return Value

Returns TRUE upon success.

If the from is not a correct upload file, no action will be taken, and move_uploaded_file() results in false.

If from is a valid upload file but cannot be relocated for any reason, no action is taken, and move_uploaded_file() returns false. Also, a warning will be issued.

PHP Version

The move_uploaded_file() function was first introduced as part of core PHP 4.0.3 and work well with the PHP 5, PHP 7 and PHP 8.

Example

Here is the basic example to see how the PHP Filesystem move_uploaded_file() function works to move an uploaded file to the given location.

<?php
   $uploads_dir = "/PhpProjects/uploads";
   foreach($_FILES["pictures"]["error"] as $key => $error) {
      if($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        $name = basename($_FILES["pictures"]["name"][$key]);
        move_uploaded_file($tmp_name, "$uploads_dir/$name");
       }
   }
?> 

Output

There is no output message in the code itself.

Example

Here is one more example to show you how to upload a single file to a specific directory using move_uploaded_file() function.

<?php
   if ($_SERVER['REQUEST_METHOD'] === 'POST') {
      $target_dir = "/PhpProjects/uploads/";
      $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

      if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
         echo "The file " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.";
      } else {
         echo "Unable to upload file because there is an error uploading your file.";
      }
   }
?>

// HTML form to upload file
<form action="" method="post" enctype="multipart/form-data">
    Select file to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload File" name="submit">
</form> 

Output

This will generate the below output −

The file image.jpg has been uploaded.

Example

Here is another example to show you how use the move_uploaded_file() function to upload a file by limiting the file size upto 2 MB.

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $target_dir = "/PhpProjects/uploads";
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $maxFileSize = 2 * 1024 * 1024; // 2MB in bytes

    // Check if file size is below the limit
    if ($_FILES["fileToUpload"]["size"] <= $maxFileSize) {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "The file " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.";
        } else {
            echo "Unable to upload file because there is an error uploading your file.";
        }
    } else {
        echo "Unable to upload file because your file is too large.";
    }
}   
?>

// HTML form to upload file
<form action="" method="post" enctype="multipart/form-data">
    Select file to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload File" name="submit">
</form> 

Output

This will generate the below output −

The file myfile.txt has been uploaded.

Notes

Here are some important points to be noted about the move_uploaded_file() function −

  • This function can check that the file given is a valid upload file, which means it was uploaded via PHP's HTTP POST upload process. If the file is valid, it can be moved to the filename provided by the destination.
  • This type of verification is typically used when there is a risk that anything done with uploaded files will reveal their contents to the user, or possibly other users on the same system.

Summary

The move_uploaded_file() method is a built-in function to move the location of the uploaded file to the given location. This function only works with files uploaded using PHP's HTTP POST upload process. If the target file is already present, it will be overwritten.

php_function_reference.htm
Advertisements