A lot of you are asking how to upload images using HTML Form and PHP. We’ll here is a simple script for that.
Here is the FORM will be using
<form enctype="multipart/form-data" action="uploader.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a file to upload: <input name="uploadedfile" type="file" /><br /> <input type="submit" value="Upload File" /> </form>
Here is a brief description of the important parts of the above code:
- enctype=”multipart/form-data” – Necessary for our to-be-created PHP file to function properly.
- action=”uploader.php” – The name of our PHP page that will be created, shortly.
- method=”POST” – Informs the browser that we want to send information to the server using POST.
- input type=”hidden” name=”MA… – Sets the maximum allowable file size, in bytes, that can be uploaded. This safety mechanism is easily bypassed and we will show a solid backup solution in PHP. We have set the max file size to 100KB in this example.
- input name=”uploadedfile” – uploadedfile is how we will access the file in our PHP script.
Here is the PHP Script
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
When the uploader.php file is executed, the uploaded file exists in a temporary storage area on the server. If the file is not moved to a different location it will be destroyed! To save our precious file we are going to need to make use of the $_FILES associative array.
The $_FILES array is where PHP stores all the information about files. There are two elements of this array that we will need to understand for this example.
- uploadedfile – uploadedfile is the reference we assigned in our HTML form. We will need this to tell the $_FILES array which file we want to play around with.
- $_FILES['uploadedfile']['name'] – name contains the original path of the user uploaded file.
- $_FILES['uploadedfile']['tmp_name'] – tmp_name contains the path to the temporary file that resides on the server. The file should exist on the server in a temporary directory with a temporary name.
Now we can finally start to write a basic PHP upload manager script! Here is how we would get the temporary file name, choose a permanent name, and choose a place to store the file.
NOTE: You will need to create a new directory in the directory where uploader.php resides, called “uploads”, as we are going to be saving files there.
We now have all we need to successfully save our file to the server. $target_path contains the path where we want to save our file to.