Computer Programming web Web programming Tips



Upload File PHP code example

By Sergey Skudaev


The first time, when I tried to write PHP code for uploading a file from my PC to my Web Server, I spent a significant amount of time. You can take this PHP code example and modify it for your needs.

To prevent overwriting files uploaded earlier, I use current date and time for new file names. The PHP code example comprised of two PHP files. The first PHP file represents a form, that allows a user to browse the local file system, select a file for uploading and submit the form. I named it upload_file.php. The second PHP file act_upload_file.php is an action template that executes uploading the selected file.

On my Windows PC, I created a uploadfile folder inside the htdocs folder and place both files inside the uploadfile folder. Besides, I created upload folder inside the "uploadfile" folder.

On the hosting web server, you have to make sure that the user has the write permission for the "upload" folder. If you use this code example on your local Windows PC, you don't have to care about it.

Listing 1. "upload_file.php"

<?php
print('<html>');
print('<head><title>');
print('Upload File Example</title>');
print("</head>");
print('<body>');
print('<form name=myform ENCTYPE="multipart/form-data" method="post" action="act_upload_file.php">');
print('<table class="aaa" align="center" width=80% border=0>');
print('<tr><th align="center">Upload File Exaple</th></tr>');
print('<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">');
print('<tr><td align="center">Upload File: <INPUT
NAME="uploaded_file" TYPE="file"></td></tr>');
print('<tr><td> </td></tr>');
print('<tr><td align="center" ><input type=submit name=submit value="Upload"> </td> </tr>');
print('</table></form>');
print('<body></html>');
?>

Listing 2. "act_upload_file.php"

<?php
$uploaded=0;
$ext="";
//generate unique file name using time:
$newfilename= md5(rand() * time());

//do we have a file?
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0))
{

     $filename =strtolower(basename($_FILES['uploaded_file']['name']));

     $ext = substr($filename, strrpos($filename, '.') + 1);

     if ((($ext == "jpg")||($ext == "JPG")) && ($_FILES["uploaded_file"]["size"] < 500000)&& (($_FILES["uploaded_file"]["type"] == "image/jpeg")|| ($_FILES["uploaded_file"]["type"] == "image/pjpeg")))
       {
       //Determine the path to which we want to save this file
       $ext=".".$ext;
       $newname = dirname(__FILE__) . '/upload/' . $newfilename.$ext;

       if ((move_uploaded_file( $_FILES['uploaded_file']['tmp_name'], $newname)))
       {
       echo "File uploaded successfully!";
       $uploaded=1;
       }
       else
       {
        echo "Error:!";
        print('<p><a href="upload_file.php?"> Back </a></p>');
       }
   } else {
   echo "Error: Only .jpg files is allowed less than 500Kb";
   print('<p><a href="upload_file.php"> Back </a></p>');
   }
} else {
 echo "Error! File is not uploaded!";
 print('<p><a href="upload_file.php" >Back</a> </p>');
}

?>

If you want to limit image width and height usegetimagesize function:

list($width, $height, $type, $attr) = getimagesize( $_FILES['uploaded_file'] ['tmp_name']);

Try to modify the PHP code example. Provide user an input field for a new file name. Think, how to check if this file already exists on the server and alert the user.



My eBooks on Amazon.com

US    UK    BR    CA
US   UK   BR   CA
US    UK    BR    CA