A simple php Upload class-PHP source code

Source: Internet
Author: User
A simple php Upload class and a simple php Upload class

 . * */ class FileUpload {    /*     * @FILE    :   Takes a file from a $_FILES via a $_POST and sets the UPLOAD DIR.     *              Tests that the submitted data is a type ARRAY     *              The resulting file is then uploaded to the DIR.     *              The returning data is a notification to the user.     *      * @AUTHOR  :   Sheldon Kemper     * @EMAIL   :   sheldonkemper@gmail.com     * @DATE    :   17 January 2012     * @COPYRIGHT:  COPYRIGHT 2012 Sheldon Kemper GPL V3     *      * @TDO     :   Needs error-checking     *              Needs File-type checking     *                   *              Create a Multiple file Method.     *              Needs a test of supplied array matching $_FILES variables.     *      * */     const BOOLTRUE = 1;     //Boolean TRUE.    const BOOLFALSE = 0;    //Boolean FALSE.    //REMOVE const  FILEUPCOMPLETE  ='File uploaded SUCCESFULLY';    //REMOVE const  FILEUPFAILURE   ='File uploaded FAILED';     private $dirSet;    //location of file uploads.    private $file;      //Post input of type FILE.    private $errorCode; //The error code associated with this file upload.     private $fileName;  //The original name of the file on the client machine.    private $fileType;  //The mime type of the file, if the browser provided this     information. An example would be "image/gif".    private $fileSize;  //The size, in bytes, of the uploaded file.    private $fileTempName; //The temporary filename of the file in which the uploaded     file was stored on the server.    private $uploadFile;    //Concates the $dirset with the filename.    public $message;    //?      /*     * @METHOD      :PUBLIC MAGIC_METHOD __CONSTRUCT.     * @DESC        :Initialises the file_upload process .     * @RETURN      :Type STRING     * */    public function __construct ( /*REMOVE $dir, $value*/ $config_array  ) {         $this->action_multiple_file_upload ( $config_array ) ;         //REMOVE19012012 $this->set_dir ( $dir );        //REMOVE19012012 $this->set_postFile ( $value );        //REMOVE19012012 $this->action_file_move ();      }     /*     * @METHOD      :PUBLIC get_fileName.     * @DESC        :Gets the upload file name.     * @RETURN      :(string) FileName.     * */    public function get_fileName () {         return $this->fileName;    }     /*     * @METHOD      :PUBLIC get_fileTempName.     * @DESC        :Gets the upload Temp file name.     * @RETURN      :(string) TempFileName.     * */    public function get_fileTempName () {         return $this->fileType;    }     /*     * @METHOD      :PUBLIC get_errorCode.     * @DESC        :Gets the upload Error Code.     * @RETURN      :(int) Error code.     * */    public function get_errorCode () {         return $this->errorCode;    }     /*     * @METHOD      :PUBLIC get_fileType.     * @DESC        :Gets the upload File Type.     * @RETURN      :(string) File Type.     * */    public function get_fileType () {         return $this->fileType;    }     /*     * @METHOD      :PRIVATE set_dir.     * @DESC        :Sets the upload directory.     * @RETURN      :     * */    private function set_dir ( $dir ) {         $this->dirSet = $dir;    }     /*     * @METHOD      :PRIVATE set_postFile.     * @DESC        :Sets the $_FILES .     * @RETURN      :     * */    private function set_postFile ( $value ) {         if( isset( $_FILES[ $value ]) ) {          $this->file = $_FILES[$value];        }    }     /*     * @METHOD  :PRIVATE action_file_move.     * @DESC    :Tests if a POST file was uploaded     *           Moves file to location.     * @RETURN  :CONST(string).     *      * */    public function action_file_move ( ) {         if( $this->bool_file_upload()==1 ) {             $this->uploadfile = $this->dirSet.'/'.$this->fileName;             if( move_uploaded_file( $this->fileTempName,$this->uploadfile )) {                 return self::BOOLTRUE;             }else {                 return self::BOOLFALSE;                }//End IF move_uploaded_file.         } else {             return self::BOOLFALSE;        }//End IF bool_file_upload.    }//END:METHOD action_file_move.      /* @METHOD     :Private action_multiple_file_upload      * @DESC        :Allows for multiple file upload to more than one DIR     *                * @RETURN  : (string) filename     *      * */  private function action_multiple_file_upload ( $config_array ) {     $this->message = array();     foreach ( $config_array as $dir=>$value ) {         $this->set_dir ( $dir );         $this->set_postFile ( $value );         if ( $this ->action_file_move ( ) ) {             $this->message[] =$this -> get_fileName();        }//End IF.    }//End FOREACH $config_array.     return $this->message;}//END:METHOD action_multiple_file_upload.     /*     * @METHOD      :PRIVATE array_confirm.     * @DESC        :Tests if passed argument is type ARRAY.     * @RETURN      :BOOL.     * */     private function array_confirm ( $file ) {         if ( is_array( $file )  ) {             return self::BOOLTRUE;         } else {             return self::BOOLFALSE ;            }//End IF is_array    }//End METHOD array_confirm     /*     * @METHOD      :PRIVATE get_loop_array     * @DESC        :Tests the array for $_FILES value      *               adding to the variables index     * @RETURN      :Sets private variables to VALUE     * @Param( Array,$array ) :Global $_FILE     * */     private function get_array_post_loop ( $array ) {         if( $this->array_confirm ( $array ) ) {             foreach ( $array as $key=>$value ) {                 switch( $key ) {                     case 'name':                    $this->fileName = $value;                    break;                     case 'error':                    $this->errorCode = $value;                    break;                     case 'type':                    $this->fileType = $value;                    break;                     case 'size':                    $this->fileSize = $value;                    break;                     case 'tmp_name':                    $this->fileTempName = $value;                    break;                     default :                     throw New Exception('Not a File');                 } //End SWITCH            } //End FOREACH        }//End IF array_confirm    } //END METHOD loop_array      /*     * @METHOD  :PRIVATE bool_file_upload     * @DESC    :Gets the array of values,     *           tests if it is uploaded via the POST     * @RETURN  :BOOL.     *      * */     private function bool_file_upload (){         $this->get_array_post_loop ( $this->file );         if(is_uploaded_file( $this->fileTempName )) {             return self::BOOLTRUE;         } else {             return self::BOOLFALSE;         }//End IF     }//END: METHOD bool_file_upload   /***************END CLASS*********************/}

The above is a simple php Upload class content. For more information, please follow the PHP Chinese network (www.php1.cn )!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.