您的位置:首页 > 编程语言 > PHP开发

PHP----文件上传类

2013-11-18 10:52 344 查看
文件上传可以大致分为几个步骤:

        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;
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息