dir = $dir; $this->format = $format; } /** * comparing mime type with type file * * @param $file is file send from * */ public function mime($file) { if(array_key_exists($file['type'],$this->format)){ return $file ; }else return false; } /** * comparing size value with size file * * @param $file is file send from * */ public function size($file) { if($file == false ){ return false; } elseif ($file['size'] <= $this->format[$file['type']] ) { return $file; } else return false; } /** * chek exist folder * * @param $path is new folder create class * */ public function exfolder() { if (is_dir($this->path)) { return true; } } /** * comparing mime type with type file * * @param $file is file send from * */ public function exfile($name) { if (file_exists($name)) { return true; }else { return $name; } } /** * comparing mime type with type file * * @param $file is file send from * */ public function newfolder() { if (!@mkdir($this->path, $this->path_right, true)) { echo "can not create a folder"; } else { return true; } } /** * new path dir * * @param no param */ public function path() { $path_keys = array( '%year%', '%month%', '%day%'); $replace_keys = array( date("Y"), date("m"), date("d")); for ($i = 0; $i <= 2; $i++) { $this->path = str_replace($path_keys[$i], $replace_keys[$i], $this->path); } } /** * create new name for file * * @param $ext format this file * */ public function rename($ext) { $name = rand() . "-" . time() . "." . $ext; return $name; } /** * object for upload file * * @param $file is file send from * */ public function uploadfile($file) { $file = $this->size( $this->mime($file) ); if ($file == false ){ echo 'error1'; }else{ $filename = basename($file['name']); $ext = substr($filename, strrpos($filename, '.') + 1); $this->path(); //if the folder is not found if( $this->exfolder($this->path) == false ){ $umask = umask(0); $this->newfolder(); if (!@move_uploaded_file($file['tmp_name'], $this->path . '/' . $filename)) { echo "can not upload file"; } umask($umask); } //if the file is not found and folder exist elseif ($this->exfolder($this->path) == true && $this->exfile($this->path.$file['name']) != true ){ $umask = umask(0); if (!@move_uploaded_file($file['tmp_name'], $this->path . '/' . $filename)) { echo "can not upload file"; } umask($umask); } //if the file and folder exist elseif( $this->exfolder($this->path) == true && $this->exfile($this->path.$file['name']) == true ){ $filename = $this->rename($ext); $umask = umask(0); if (!@move_uploaded_file($file['tmp_name'], $this->path . '/' . $filename)) { echo "can not upload file"; } umask($umask); } //not else{ echo 'oooooooooooooooooooooooooooooooooooooooooooooooof love php'; } } } } ?>