You must first build an HTML form that lets users select a file to upload.

<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>

  • enctype="multipart/form-data" - Necessary for our to-be-created PHP file to function properly. The enctype attribute specifies how form-data should be encoded before sending it to the server. See table below.
  • 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.
  • input name="uploadedfile" - uploadedfile is how we will access the file in our PHP script.

Attribute Values

Value Description
application/x-www-form-urlencoded All characters are encoded before sent (this is default)
multipart/form-data No characters are encoded. This value is required when you are using forms that have a file upload control
text/plain Spaces are converted to "+" symbols, but no special characters are encoded

Save that form code into a file and call it upload.html.
After the user clicks submit, the data will be posted to the server and the user will be redirected to uploader.php

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!

Here is uploader.php

$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!";
}

The $_FILES array is where PHP stores all the information about files.

  • uploadedfile - uploadedfile is the reference we assigned in our HTML form.
  • $_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.

Related Posts by Categories