Welcome everyone
here you'll learn how to upload files using PHP in a very simple way.
first put the following code in one file (upload.php)
create a directory called (images) or whatever you want "don't forget to change ( $upload_dir = "images/"; ).
<html> <head> <title>Upload File</title> </head> <form action="upload.php" method="post" enctype="multipart/form-data"> Browse a File to Upload:<br> <input type="file" name="filetoupload"><br> <input type="hidden" name="MAX_FILE_SIZE" value="<?echo $size_bytes; ?>"> <br> <input type="Submit" value="Upload File"> </form> <?php /* Author: Mohammed Ahmed(M@king) E-mail: m at maaking dot com WWW : http://www.maaking.com */ //**********************************************************************// // $_FILES['filetoupload'] is the value of // // file field from the form. <input type="file" name="filetoupload"> // //**********************************************************************// // this is the upload dir where files will go. //Don't remove the / //Chmod it (777) $upload_dir = "images/"; //change to whatever you want. // files less than 1MB $size_bytes = 1048576; //bytes will be uploaded $limit_file_type = "no"; //Do you want to limit the types of files uploaded. (yes/no) // specify file types. $allowed_file_type = array('image/gif', 'image/pjpeg', 'image/jpeg', 'image/png', 'image/jpg'); //check if the directory exist or not. if (!is_dir("$upload_dir")) { die ("The directory <b>($upload_dir)</b> doesn't exist"); } //check if the directory is writable. if (!is_writeable("$upload_dir")){ die ("The directory <b>($upload_dir)</b> is NOT writable, Please Chmod (777)"); } //Check first if a file has been selected //is_uploaded_file('filename') returns true if //a file was uploaded via HTTP POST. Returns false otherwise. if (is_uploaded_file($_FILES['filetoupload']['tmp_name'])) {//begin of is_uploaded_file //Get the Size of the File $size = $_FILES['filetoupload']['size']; //Make sure that $size is less than 1MB (1000000 bytes) if ($size > $size_bytes) { echo "File Too Large. File must be <b>$size_bytes</b> bytes."; exit(); } //check file type if (($limit_file_type == "yes") && (!in_array($_FILES['filetoupload']['type'],$allowed_file_type))) { echo"wrong file type"; exit(); } // $filename will hold the value of the file name submetted from the form. $filename = $_FILES['filetoupload']['name']; // Check if file is Already EXISTS. if(file_exists($upload_dir.$filename)){ echo "Oops! The file named <b>$filename </b>already exists"; exit(); } //Move the File to the Directory of your choice //move_uploaded_file('filename','destination') Moves afile to a new location. if (move_uploaded_file($_FILES['filetoupload']['tmp_name'],$upload_dir.$filename)) { //tell the user that the file has been uploaded and make him alink too;). echo "File (<a href=$upload_dir$filename>$filename</a>) uploaded!"; exit(); } else { //Print error echo "There was a problem moving your file"; exit(); } }//end of is_uploaded_file ?>
what we used?
-The Super Global Variable $_FILES is used in PHP 4.x.x.
$_FILES['upload']['size'] ==> Get the Size of the File in Bytes.
$_FILES['upload']['tmp_name'] ==> Returns the Temporary Name of the File.
$_FILES['upload']['name'] ==> Returns the Actual Name of the File.
$_FILES['upload']['type'] ==> Returns the Type of the File.
****************
-Functions used
1- (!is_dir("$upload_dir"))
checks if the directory exist or not.
2- (!is_writeable("$upload_dir"))
checks if the directory is writable.
3- (is_uploaded_file($_FILES['filetoupload']['tmp_name'])
Checks first if a file has been selected
4- (!in_array($_FILES['filetoupload']['type'],$allowed_file_type))
checks file type eg. "gif,jpg etc."
5- (file_exists($upload_dir.$filename))
Checks if file is Already EXISTS.
6- (move_uploaded_file($_FILES['filetoupload']['tmp_name'],$upload_dir.$filename))
Moves the File to the Directory of your choice eg. "images"
- IS it a very simple and powerful WAY???.
- Enjoy
M@king