Sometimes we want to upload a file in our HTML form. PHP provides the feature for handling a file at server side with $_FILES array. We can also check different properties of an files like file-name, file-type, file-size, and some other attributes.
Read Also: How to Upload File in PHP
Index
What is $_FILES?
PHP provides one global variable called $_FILES. It is a two-dimensional associative array that keeps information related to uploaded files via the HTTP POST method.
It holds attribute as follows:
Attribute | Description |
[name] | Name of the file being uploaded |
[size] | Size of the file |
[type] | Type of file |
[tmp_name] | Temporary address where the file is located before processing the upload request |
[error] | Error code associated with the file |
Above attributes syntax with $_FILES.
- $_FILES[file][name]
- $_FILES[file][tmp_name]
- $_FILES[file][type]
- $_FILES[file][size]
- $_FILES[file][error]
Lets, take a straightforward example that indicates different $_FILES attributes.
Example 1
<?php echo "<pre>"; print_r($_FILES); echo "</pre>"; ?> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="Upload Image"> </form>
The above code displays the following HTML page to users.
We select the file and upload it then print_r displays all information regarding the data. Suppose we upload download.png file then it will display the output as follows:
Output:
Array (
[file] => Array
(
[name] => errorsea.txt
[type] => Text Document (.txt)
[tmp_name] => 5EB63BBBE01EEED093CB22BB8F5ACDC3
[size] => 69696
[error] => 0
)
)
Steps being proceeded for uploading a file:
- The user first opens an HTML page containing form having text files, a browse button, and a submit button.
- The user clicks on the browse button and selects a file for uploading on the server.
- The full path for the selected file appears in the text field, and the user clicks on the submit button.
- The file is sent to a temporary location on the server.
- The PHP file assigned to a form in action attribute checks whether the file is arrived and then copies the file in the intended directory.
- If the file successfully uploaded, then PHP conforms success to the user.
Example 2
Suppose we want to create a form that takes an image file and upload it on the server.
Steps:
- First, we create an index.html file that contains the code of HTML form.
- Then we create upload.php file that handles the uploading of the image.
Step 1: Code for index.html file
<!DOCTYPE html> <html> <head> <title>Errorsea</title> </head> <body> <form action="upload.php" enctype="multipart/form-data" method="post"> <h2>Upload file</h2> <input type="file" name="pic"> <input type="submit" name="submit" value="Uplaod file"><br><br> // Here file name is used for accessing the file </form> </body> </html>
Step 2: Code for upload.php file
<?php if(isset($_POST['submit'])) { if(isset($_FILES["pic"]) && $_FILES["pic"]["error"] == 0) { $name = $_FILES['pic']['name']; $size = $_FILES['pic']['size']; $type = $_FILES['pic']['type']; $temp_name = $_FILES['pic']['tmp_name']; $error = $_FILES['pic']['error']; echo "<div style='padding:15px;'> File Properties </div>"; echo "<div style='padding:15px;'>Name : ".$name."</div>"; echo "<div style='padding:15px;'>Size : ".$size."</div>"; echo "<div style='padding:15px;'>Type : ".$type."</div>"; echo "<div style='padding:15px;'>Temporary Name : ".$temp_name."</div>"; echo "<div style='padding:15px;'>Errors : ".$error."</div>"; } } ?>
Once the file is uploaded successfully, then we can access all file attributes from $_FILES array. We can access file type, file size, and file name, etc.
Output: