cloudgamer无刷新上传文件的PHP版本修改

2009年4月25日    分类:PHP, 原创   浏览次数:7 

源文地址

/** 使用本程序之前,请修改php.ini中限制的单个文件最大容量
 * upload_max_filesize = 20M   //最大文件限制
 * post_max_size = 20M  //POST接收的最大限制,即所有上传文件的总量
 * 并最好与程序中的单个文件限制相同,以免出现验证错误
 * 本脚本文件编码为ANSI,建议修改为与其他文件一致的编码
 * 请自行修改可以上传的文件类型
 * 如果有需要,可以自行修改文件类型的验证方式,读文件开头的2字节,而不是通过后缀名
 * @filesource csdn网友mengshan1986提供的php版本
 * @changer klniuer
 * @site http://livesdrop.com
 **/
?>
$sort=12;
$f_type=strtolower("swf,jpg,rar,zip,7z,iso,gif");//设置可上传的文件类型
$file_size_max=20*1024*1024;//限制单个文件上传最大容量
$overwrite = 0;//是否允许覆盖相同文件,1:允许,0:不允许
$f_input="Files";//设置上传域名称
$_msg = "";
if (isset($_FILES[$f_input])){ //如果文件总大小超过服务器POST限制,文件就没有上传至服务器,foreach就不会执行,返回客户端的会是一个空字符串,此处加入验证
    foreach($_FILES[$f_input]["error"] as $key => $error){
        $up_error="no";
        if ($error == UPLOAD_ERR_OK && is_uploaded_file($_FILES[$f_input]['tmp_name'][$key])){ //加入安全验证
            $f_name=$_FILES[$f_input]['name'][$key];//获取上传源文件名
            $uploadfile=$uploaddir.strtolower(basename($f_name));
            $tmp_type=substr(strrchr($f_name,"."),1);//获取文件扩展名
            $tmp_type=strtolower($tmp_type);
            if(!stristr($f_type,$tmp_type)){
                $_msg .= "对不起,不能上传".$tmp_type."格式文件, ".$f_name." 文件上传失败!\\n";
                $up_error="yes";
            }elseif ($_FILES[$f_input]['size'][$key]>$file_size_max){
                $_msg .= "对不起,你上传的文件 ".$f_name." 容量为".round($_FILES[$f_input]['size'][$key]/1024/1024,1)."MB,大于限制的". round($file_size_max/1024/1024,1)."MB,上传失败!\\n";
                $up_error="yes";
            }elseif (file_exists($uploadfile) && !$overwrite){
                $_msg .= "对不起,文件 ".$f_name." 已经存在,上传失败!\\n";
                $up_error="yes";
            }else{//不需要随机数
                $t=date("ymdHis").substr($gettime[0],2,6).$rand;
                $attdir="file/";//将文件移至的目录,请根据自己情况修改,相对于该脚本路径
                if(!is_dir($attdir))
                    mkdir($attdir);
                $uploadfile=$attdir.$t.".".$tmp_type;
                if(($up_error!="yes") and (move_uploaded_file($_FILES[$f_input]['tmp_name'][$key], $uploadfile))){
                    $_msg .=$f_name.' 上传成功\\n';
                }else{
                    $_msg .=$f_name.' 上传失败\\n';
                }
            }
        }elseif($error == UPLOAD_ERR_INI_SIZE){//调试使用,防止自己忘记更改upload_max_filesize 最大文件限制
            $msg .= "对不起,文件大小超过服务器限制,请通知管理员。\\n";
        }else{
            $msg .= "对不起,上传不可意料错误!\\n";
        }
    }
}else{
    $_msg .= "对不起,文件大小超过限制!\\n";//如果上传上来的文件为空,则判断文件超过限制大小
}
echo "<script type="text/javascript"><!--mce:0--></script>";
?>

完整程序:http://www.boxcn.net/shared/fur3frt2zd

标签: , , ,      订阅此文  

本文地址:http://klniu.com/post/php-post-files/

相关文章

  1. PHP大文件上传问题
  2. PHP表单中整数和浮点数的验证 (2)

2 留言


28 queries in 0.405 秒.