PHP----文件上传类

文件上传可以大致分为几个步骤:

        1.获取上传对象

        2.检验上传是否能成功上传

        3.判断上传文件类型

        4.判断上传文件大小

        5.判断是否为上传文件

        6.移动到指定位置

从别的大牛那整理的:MIME.php。见文章列表(不知道怎么添加附件,大家包涵)

<?php
error_reporting(E_ALL^E_WARNING);
include 'MIME.php';//导入允许的上传文件类型

$size = 1000000;(也可以在form表单中用隐藏域设置大小值)  //限制上传文件大小
$path = "./uploads";   //上传文件到指定路径
$myfile = $_FILES['myfile'];
 
//调用文件上传类
echo uploadFile($myfile, $size, $allowType, $path);
 
/**
* 构造方法用来实例化文件上传对象
* @author xiaohuixiong
* @version 版本1.0 | 2013-11-11
* @param int $myfile | $_FILES['myfile'] | 文件的参数名
* @param int $size | 文件的限制大小
* @param int $path | 上传文件的指定存储位置
* @param int $allowType | 限制上传文件的类型 | 从MIME.php中导入
**/
function uploadFile($myfile, $size, $allowType, $path){

	if($myfile['error'] > 0){//判断文件是否可以成功上传
		$errors = "上传错误";
		switch($myfile['error']){
			case 1:
				$errors = "文件上传大小超出了表单中的约定值!";
			case 2:
				$errors = "上传文件大小超出了表单中的约定值!";
			case 3:
				$errors = "文件只被部分上传!";
			case 4:
				$errors = "没有上传任何文件!";
			default:
				$errors = "未知错误!";
		}
	}elseif(isset($allowType) && !in_array($myfile['type'], $allowType)){//判断上传文件的类型
		$errors = "上传文件类型不支持!";
	}elseif(isset($size) && $myfile['size'] > $size){//判断文件上传的大小
		$errors = "文件太大!";
	}else{ 
		//判断在指定路径,重命名并判断是否已经存在
		do{
			$uploadName = time()."-".rand(1,9999)."-".$myfile['name'];
		}while(file_exists($path.'/'.$uploadName));
		
		//判断是否为上传文件(如果是就移动文件)
		if(is_uploaded_file($myfile['tmp_name'])){
			//移动文件到指定目录
			if(!move_uploaded_file($myfile['tmp_name'], $path.'/'.$uploadName)){
				$errors = "不能将文件移动到指定目录!";
			}else{
				$errors = "OK!";
			}
		}else{
			$errors = "上传的文件不是一个合法文件!";
		}
	}
	return $errors;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值