当前位置:首页 > 资讯 > info6 > 正文

自己写的一个简易单文件上传类

发表于: 2012-12-05   作者:cg9112   来源:转载   浏览:
摘要: /** 燕十八公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it **/html上传表单: 文件: 处理上传后的php文件setAllowTypes('jpg,jpeg');//手动设置允许上传的类型为jpg,jpeg $up->setAllowMaxSize(4);//手动设置上传的最大容量为4mb if(!!$res=$up->uploa

/** 
燕十八 公益PHP培训 
课堂地址:YY频道88354001 
学习社区:www.zixue.it 
**/

html上传表单:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
 </head>

 <body>
 <form method="post" action="up.php" enctype='multipart/form-data'>
 <span>文件:</span><input type='file' name='file' ><br>
<input type='submit' value='上传' ><br>
 </form>
  
 </body>
</html>

处理上传后的php文件

<?php
if(isset($_FILES['file'])){
  include 'uploadFile.class.php';
  $up=new uploadFile('file');//file为input的name值
  $up->setAllowTypes('jpg,jpeg');//手动设置允许上传的类型为jpg,jpeg
  $up->setAllowMaxSize(4);//手动设置上传的最大容量为4mb
  if(!!$res=$up->upload()){
	  echo $res;
    echo '上传文件成功';
  }else{
	echo $up->getError();
        echo '上传失败';
  }
}

?>

文件上传类:

<?php
//水平有限,目前只有单文件上传
  class uploadFile{
    private $allowTypes='jpg,jpeg,gif,bmp';//允许上传的文件类型
    private $allowMaxSize=1;//允许文件的最大容量,1为1mb的意思
    private $_file;//存在上传后的数组信息
    private $error_num;//错误代码
    private $error_info=array(
		0=>'成功',
		1=>'大小超过upload_max_filesize',
		2=>'大小超过MAX_FILE_SIZE',
		3=>'文件只被部分上传',
		4=>'没有上传任何文件',
		6=>'没有指定upload_tmp_dir目录',
		7=>'文件写入磁盘错误',
	//	8=>'该类型文件不允许上传',
	//	9=>'文件太大',
		10=>'文件不是通过http post上传的',
		11=>'文件移动失败',
	);//错误信息

	public function __construct($name){//传入文件input中的name值
	   $this->_file=$_FILES[$name];
	}
   //上传操作
    public function upload(){
		//上传失败
		if($this->_file['error']>0){
		   $this->error_num=$this->_file['error'];
		   return false;
		}
		//类型不通过
		if(!$this->checkType()){
			$this->error_num=8;
                        $this->error_info[8]='只能是以下类型文件:'.$this->allowTypes;
			return false;
		}
		//大小超过最大值
                if(!$this->checkSize()){
		   $this->error_num=9;
                   $this->error_info[9]='文件最大不能超过:'.$this->allowMaxSize.'mb';
			return false;
		}
        //文件不是通过http post上传的
		if(!is_uploaded_file($this->_file['tmp_name'])){
		   $this->error_num=10;
			return false;
		}
		$newdir='./images'.date('/Ym/d').'/';
		if(!is_dir($newdir)){
		    mkdir($newdir,0777,true);//创建存放图片的目录
		}
		$newpath=$newdir.$this->getRandName().'.'.$this->getFileType();
		if(!move_uploaded_file($this->_file['tmp_name'],$newpath)){
		   $this->error_num=11;
			return false;
		}else{
		  return $newpath;
		}



	}
    //检查文件类型是否符合
	private function checkType(){
	    $type=explode(',',$this->allowTypes);
		$filetype=$this->getFileType();
		if(!in_array($filetype,$type)){
		  return false;
		}else{
		  return true;
		}
	}

    //获取文件类型
	private function getFileType(){
		$arr=pathinfo($this->_file['name']);
		return strtolower($arr['extension']);
	}

    //检查文件大小
	private function checkSize(){
		  $filesize=$this->_file['size'];
		  if($filesize>$this->allowMaxSize*1024*1024){
			return false;
		  }else{
		    return true;
		  }
	}

	//随机文件名
	private function getRandName(){
	  $str='abcdefghijklmnopqrstuvwxyz';
	 return substr(str_shuffle($str),0,8).time();
	}
        //获取错误信息
	public function getError(){
	  return $this->error_info[$this->error_num];
	}
       //手动设置允许的文件上传类型
	public function setAllowTypes($str){
	   $this->allowTypes=$str;
	}
        //手动设置最大上传大小
	public function setAllowMaxSize($size){
	  $this->allowMaxSize=$size;
	}

}



自己写的一个简易单文件上传类

编辑推荐
[size=xx-large][/size] 电子科大大二学生,刚学java,写了个java 链表类,发现大部分功能正常,只不
先看效果图: 文件布局: defualt.aspx代码: <head runat="server"> <title></titl
先看效果图: 文件布局: defualt.aspx代码: <head runat="server"> <title></titl
最近在整理一下日记资料。 日记记录到比不上网上这篇全,转过来了,摘自:http://www.bkjia.com/ASP
自己编写一个读取TGA文件的类 TGA文件,也就是Targa文件,是一种图片的格式,在游戏和绘图领域中用
ckeditor最近修改一个上传的,原来的Image的上传插件功能很多,但是自己用,没有必要,就进行了修改
最近应用中需要添加用户头像的显示功能,突发奇想加入了滑动头像注销当前用户的功能,实现后的效果
上篇回顾请看:http://blog.csdn.net/weizengxun/article/details/6727781 效果图: 效果图一(未上
上篇回顾请看:http://blog.csdn.net/weizengxun/article/details/6727781 效果图: 效果图一(未上
源代码如下: Imports System.Xml Imports System.Threading Public Class Form1 Inherits System.Wi
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号