Handling Form-based File Upload with PHP

In this section, we will introduce to you how to handle form-based file uploads with a PHP script. The techniques are the same for HTML and XHTML. At the time of writing, the latest version of PHP is 5.2.0. So, we assume you are using PHP 5.2.0 in this tutorial. For other versions of PHP, the procedures should be similar. If you are not familiar with PHP, you may want to read some introductory tutorials before going through this section.




Parsing Form Data and Getting Information about the Uploaded File with PHP


To extract an uploaded file from an HTTP request, we need to parse the form data that is encoded in the “multipart/form-data” format. In PHP, the form data in an HTTP request is automatically parsed. The PHP engine stores the information of the uploaded files in the $_FILES array.


Now let’s say the name attribute value of the <input type=”file”> element in a certain HTML/XHTML/XHTML MP document is myFile. To obtain the information about the uploaded file, use the following lines of PHP script:




/* Get the size of the uploaded file in bytes. */
$fileSize = $_FILES[‘myFile’][‘size’];

/* Get the name (including path information) of the temporary file created by PHP that contains the same contents as the uploaded file. */
$tmpFile = $_FILES[‘myFile’][‘tmp_name’];

/* Get the name of the uploaded file at the client-side. Some browsers include the whole path here (e.g. e:\files\myFile.txt), so you may need to extract the file name from the path. This information is provided by the client browser, which means you should be cautious since it may be a wrong value provided by a malicious user. */
$fileName = $_FILES[‘myFile’][‘name’];

/* Get the content type (MIME type) of the uploaded file. This information is provided by the client browser, which means you should be cautious since it may be a wrong value provided by a malicious user. */
$contentType = $_FILES[‘myFile’][‘type’];




Nokia cell phones such as Nokia 6230 determine the content type (MIME type) of the file to be uploaded by its file extension. The following table lists some of the file extensions that are recognized by Nokia 6230:




























File extension


Content type / MIME type


.jpg


image/jpeg


.gif


image/gif


.png


image/png


.wbmp


image/vnd.wap.wbmp


.txt


text/plain




If the Nokia 6230 cell phone does not recognize a file extension, it will specify “application/octet-stream” as the content type / MIME type of the file in the HTTP request.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.