Monday, June 24, 2013

File Upload Using PHP

                                       ...................Single File Upload Start.....................

<?php
if(isset($_FILES['file'])){
    $allowed_file_type = array("pdf","ppt","pptx","xls"."xlxs","doc","docx","jpg", "jpeg", "png", "gif");
    $max_file_size = 2097152;
   $file_dir="uploads";
    $file_name = $_FILES['file']['name'];
    $file_size =$_FILES['file']['size'];
    $file_tmp_name =$_FILES['file']['tmp_name'];
    $file_type=$_FILES['file']['type'];
    $ext = pathinfo($file_name, PATHINFO_EXTENSION);
    if (in_array($ext, $allowed_file_type)) {
          if($file_size > $max_file_size){
                $fsize=$max_file_size/1048576;
                echo 'File size must be less than '.$fsize.' MB';
                break;
            }
             if(is_dir($file_dir)==false){
              $status =  mkdir("$file_dir", 0700);
               if($status < 1){
                     echo "unable to create  diractory $file_dir ";
                     break;
                }
            }
            if(is_dir($file_dir)){
                move_uploaded_file($file_tmp_name,"$file_dir/".$file_name);
        }
    }
}

?>
<form action="" enctype="multipart/form-data" method="post">Choose a file to upload : <input type="file" multiple="multiple" name="file" />
 <input type="submit" /></form>

                                       ................ Single File Upload End..............
                                       .............. Multiple File Upload Start...........
 <?php

error_reporting(0);
if(isset($_FILES['files'])){
    $errors= array();
    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
        $file_name = $key.$_FILES['files']['name'][$key];
        $file_size =$_FILES['files']['size'][$key];
        $file_tmp =$_FILES['files']['tmp_name'][$key];
        $file_type=$_FILES['files']['type'][$key];  
        if($file_size > 2097152){
            $errors[]='File size must be less than 2 MB';
        }      
        $query="INSERT into upload_data (`USER_ID`,`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`) VALUES('$user_id','$file_name','$file_size','$file_type'); ";
        $desired_dir="user_data";
        if(empty($errors)==true){
            if(is_dir($desired_dir)==false){
                mkdir("$desired_dir", 0700);        // Create directory if it does not exist
            }
            if(is_dir("$desired_dir/".$file_name)==false){
                move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
            }else{                                    // rename the file if another one exist
                $new_dir="$desired_dir/".$file_name.time();
                 rename($file_tmp,$new_dir) ;              
            }
         mysql_query($query);          
        }else{
                print_r($errors);
        }
    }
    if(empty($error)){
        echo "Success";
    }
}
?>


<form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="files[]" multiple/>
    <input type="submit"/>
</form>


DB code:

CREATE TABLE `upload_data` (
  `ID` int(5) NOT NULL AUTO_INCREMENT,
  `USER_CODE` int(4) unsigned zerofill NOT NULL,
  `FILE_NAME` varchar(200) NOT NULL,
  `FILE_SIZE` varchar(200) NOT NULL,
  `FILE_TYPE` varchar(200) NOT NULL,
  PRIMARY KEY (`ID`)
)



.....................................Multiple end.........................
This link for Multiple image Upload and Update:http://www.sitepoint.com/forums/showthread.php?840481-Multiple-Image-Upload-with-Update.
This is for Sngle image Uodate:http://stackoverflow.com/questions/10834876/how-to-update-an-image-in-mysql







                                       .............. Multiple File Upload Start...........

Sql part

CREATE TABLE `test`.`user_uploads` (
`id` INT( 11 ) NOT NULL ,
`u_id` INT( 11 ) NOT NULL ,
`file_name` VARCHAR( 255 ) NOT NULL ,
`file_type` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
<?php

if(isset($_FILES['files'])){
    $res =  upload_multiple_file($_FILES['files'],"user_files");
    echo $res;
    }

function upload_multiple_file($file,$file_dir="user_files") {

    $overwrite=0;
    $allowed_file_type= array("pdf","ppt","pptx","xls"."xlxs","doc","docx","jpg", "jpeg", "png", "gif");
   // $max_file_size = 2097152;

     foreach($_FILES['files']['name'] as $fkey=> $fname){

         $ext = pathinfo($fname, PATHINFO_EXTENSION);
           if (!in_array($ext, $allowed_file_type)) {

               return "unsupported file format";
                break;
           }

     }

    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){

        $file_name = $_FILES['files']['name'][$key];

        $file_size =$_FILES['files']['size'][$key];

        $file_tmp_name =$_FILES['files']['tmp_name'][$key];

        $file_type=$_FILES['files']['type'][$key];

        /*if($max_file_size_check >0) {
            if($file_size > $max_file_size){

                $fsize=$max_file_size/1048576;
                return    'File size must be less than '.$fsize.' MB';
                break;

            }
        }*/

        if(is_dir($file_dir)==false){

              $status =  mkdir("$file_dir", 0700);

               if($status < 1){

                     return "unable to create  diractory $file_dir ";

                }

        }

        if(is_dir($file_dir)){

            if($overwrite < 1){

                move_uploaded_file($file_tmp_name,"$file_dir/".$file_name);

            }

        }

        //  $file_upload_query="INSERT into user_uploads (`u_id`,`file_name`,`file_type`) VALUES('$user_id','$file_name','$file_size','$file_type'); ";
        //mysql_query($file_upload_query);

   }

        return "Success";

}

?>

<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple/>
<input type="submit" value="submit"/>
</form>
             ...............................................................End....................................................................

No comments:

Post a Comment