class Upload { public $up_ext=array(), $up_max=5210, $up_dir; private $up_name, $up_rename=true, $up_num; =0 , $up_files=array(), $up_ret=array(); function __construct($name, $ext=array(), $rename=true) { if (!empty($name)) { $this ->up_name = $name; !empty($ext) && $this->up_rename = $rename; $this->up_dir = $globals ['cfg_upload_path']; $this->initupload(); exit('アップロード ファイルのドメイン名が空です。初期化に失敗しました!'); }
private function initupload( ) { if (is_array($_files[$this->up_name])) { $up_arr = count($_files[$this->up_name]) $up_all = count($_files[$this- >up_name ], 1); $up_cnt = ($up_all - $up_arr) / $up_arr; for ($i = 0; $i if ($_files[ $this->up_name]['error'][$i] != 4) { $this->up_files[] = array( 'tmp_name' => $_files[$this->up_name] ['tmp_name '][$i], 'name' => $_files[$this->up_name]['name'][$i], 'type' => >up_name ]['type'][$i], 'size' => $_files[$this->up_name]['size'][$i], 'error' => [$this ->up_name]['error'][$i] ); } } $this->up_num = count($this->up_files) } else { if (isset) ($_files [$this->up_name])) { $this->up_files = array( 'tmp_name' =>$_files[$this->up_name]['tmp_name'], 'name ' => $_files[$this->up_name]['name'], 'type' => $_files[$this->up_name]['type'], 'size' => $_files[ $this->up_name]['size'], 'error' => $_files[$this->up_name]['error'] ); ; } else { exit('アップロードする必要のあるファイルが見つかりませんでした! '); }
$this->chkupload(); }
プライベート関数chkupload() { if (empty($this->up_ext)) { $up_mime = array('image /wbmp', 'image/bmp', 'image/gif', 'image/pjpeg', 'image/x-png'); foreach ($this->up_files as $up_file) { $up_allw = false ; foreach ($up_mime as $mime) { if ($up_file['type'] == $mime) { $up_allw = true; } } !$up_allw && exit('アップロードは許可されません'.$up_file['type'].' 形式ファイル! ');
if ($up_file['size'] / 1024 > $this->up_max) { exit('次のサイズより大きいファイルはアップロードできません' .$this->up_max.'k ファイル! '); } } } else { foreach ($this->up_files as $up_file) { $up_ext = end(explode('.', $up_file['name']));
$up_allw = false; foreach ($this->up_ext as $ext) { if ($up_ext == $ext) { $up_allw = true; } } !$up_allw && exit('.'.$up_ext.' 形式でのファイルのアップロードは許可されていません!');
if ($up_file['size'] / 1024 > $this-> up_max ) { exit('.$this->up_max.'k!' を超えるファイルのアップロードを許可しない) } } } $this->uploading();プライベート関数 Uploading() { if (io::dircreate($this->up_dir)) { if (chmod($this->up_dir, 0777)) { if (!empty($this->>; up_files) ) { foreach ($this->up_files as $up_file) { if (is_uploaded_file($up_file['tmp_name'])) { $file_name = $up_file['name']; -> ;up_rename) { $file_ext = end(explode('.', $file_name)) $file_rnd = substr(md5(uniqid()), mt_rand(0, 26), 6); date( 'ymdhis').'_'.$file_rnd.'.'.$file_ext; } $file_name = $this->up_dir.'/'.$file_name;
if (move_uploaded_file($up_file[ 'tmp_name '], $file_name)) { $this->up_ret[] = str_replace(website_dirroot, '', $file_name) } else { exit('ファイルのアップロードに失敗しました! '); } } } } } else { exit('書き込み権限が有効になっていません!'); } } else { exit('アップロード ディレクトリの作成に失敗しました!'); }
public function getupload() { return empty($this->up_ret) ? false : $this->up_ret }
function __destruct() {} } ?>
|