-
-
/* - * class: 文件上传类
- * author: ZMM
- * date: 2011.1.20
- * email: 304924248@qq.com
- * link: http ://bbs.it-home.org
- */
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_ext = $ext;
- $this->up_rename = $ rename;
- $this->up_dir = WEBSITE_DIRROOT.
- $GLOBALS['cfg_upload_path'];
- $this->InitUpload();
- } else {
- exit('upload文件ドメイン名空,初化失败!' );
- }
- }
プライベート関数 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 < $up_cnt; $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' => $_FILES[$this->up_name]['type'][$i],
- 'size' => $_FILES[$this->up_name]['size'][$i],
- 'error' => $_FILES[$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'],
- '名前' => $_FILES[$this->up_name]['name'],
- 'type' => $_FILES[$this->up_name]['type'],
- 'size' = > $_FILES[$this->up_name]['size'],
- 'error' => $_FILES[$this->up_name]['error']
- );
- $this->up_num = 1;
- } else {
- exit('没找找到アップロード必要な文件!');
- }
- }
$this->ChkUpload();
- } p>
プライベート関数 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; Break;
- }
- }
- !$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; Break;
- }
- }
- !$up_allw && exit('不允许上传.'.$up_ext.'格式的文件!');
if ($up_file['size'] / 1024 >up_max) {
- exit('不允许上传大以上 '.$this->up_max.'K 的文章!');
- }
- }
- }
- < ;p>$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'];
- if ($this->up_rename) {
- $file_ext = end(explode('.', $file_name));
- $file_rnd = substr(md5(uniqid()), mt_rand(0, 26), 6);
- $file_name = 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() {}
- }
- ?<
-
复制代
|