PHP 文件上传类

<?php
	class upLoad{
		private $fileName;//文件名
		private $fileType;//文件类型
		private $fileSize;//文件的大小
		private $fileTemp;//临时文件
		private $error;//上传是否有错误
		private $maxSize;//允许的最大上传文件尺寸
		private $directory;//文件最终存储目录
		private $newName;//规定存储在数据库的文件名
		private $arrType=array();//构造允许上传的文件类型
		private $sMsg;//文件上传状态信息
		public function __construct($fileField,$maxSize,$directory,$name=''){
			$this->maxSize=$maxSize;
			$this->directory=$directory;
			$this->setArray();
			foreach($fileField['name'] as $key=>$filename){
				$this->newName=empty($name[$key])?time():$name[$key];
				$this->fileName=$filename;
				$this->fileTemp=$fileField['tmp_name'][$key];
				$this->error=$fileField['error'][$key];
				$this->fileSize=$fileField['size'][$key];
				$this->fileType=$fileField['type'][$key];
				$msg=$this->uploading();
				$this->sMsg.=$msg?"{$filename}{$msg}":"{$filename}上传成功";
				$this->sMsg.="<br/>";
			}
			echo $this->sMsg;
		}
		public function uploading(){
			if($this->error==0){
				if($this->fileSize <= $this->maxSize){
					if(in_array($this->fileType,$this->arrType)){
						if(file_exists($this->directory)){
							return $this->moveuploadedfile();
						}else {
								if(mkdir($this->directory,0775)){
								return	$this->moveuploadedfile();
								}else{
								return '无法找到'.$this->directory.'目录';
							}
						}
					}else{
						return '上传不支持'.$this->fileType.'类型';
					}
				}else{
					return '上传图片失败,请确认你的上传文件不超过 '.$this->maxSize;
				}
			}else if($this->error==1){
				return '上传文件过大PHP';
			}else if($this->error==2){
				return '上传文件过大HTML';
			}else if($this->error==3){
				return '文件只有部分被上传';
			}else if($this->error==4){
				return '没有文件被上传';
			}else if($this->error==5){
				return '找不到临时文件夹';
			}else if($this->error==7){
				return '文件写入失败';
			}else {
				return '未知错误,请重新上传文件';
			}
		}
		private function moveuploadedfile(){
			$ext=substr($this->fileName, strrpos($this->fileName, '.'));
			$name=$this->newName.$ext;
			$dir=str_replace('//', '/', $this->directory.'/'.$name);
			$dir=str_replace('\\', '/', $this->directory.'/'.$name);
			if(move_uploaded_file($this->fileTemp,$dir)){
				return false;
			}else{
				return '上传图片失败,请确认你的上传文件不超过 '.$this->maxSize.'k或上传时间超时';
			}
		}
		private function setArray(){
			$this->arrType=array('image/jpg','image/gif','image/bmp','image/png','image/jpeg');
		}
	}
	$name='';
	if(!empty($_POST['img_name'])){
		$name=$_POST['img_name'];
	}
	if(!empty($_FILES)){
		$oUp=new upLoad($_FILES['upfile'], 1024*1204, './tmp/',$name);
	}
	
?>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<form action="upfile.php" method="post" enctype="multipart/form-data">
				<table width="100%" border="1" cellspacing="0" cellpadding="0">
					<tr>
						<td class="left bold" width="100%">
							<h1>上传图片</h1>
						</td>
					</tr>
					<tr>
						<td class="left">
							<label for="img_name">图片名称:</label><input type="text" name="img_name[]" id="img_name"/>
							<input type="file" name="upfile[]"  value="选择文件"/><br/>
							<label for="img_name">图片名称:</label><input type="text" name="img_name[]" id="img_name"/>
							<input type="file" name="upfile[]"  value="选择文件"/>
							<div class="exthr">
								<input type="submit" name="sub_img" value="上传图片"/>
								<input type="reset" name="reset_img" value="取消"/>
							</div>
						</td>
					</tr>
				</table>
</form>
</body>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值