PHP封装上传类
来源:互联网 发布:劲舞团做图软件 编辑:程序博客网 时间:2024/06/06 00:23
<?php
//print_r($_FILES['pic']);
//print_r($_SERVER);
header("Content-type:text/html; charset=utf-8");
date_default_timezone_set("PRC");
define("ROOT",$_SERVER['DOCUMENT_ROOT']);
class Upload{
protected $allowExt=array('jpg','png','gif','bmp');
protected $allowSize=2;
protected $errno=0;
protected $error=array(
0=>'文件上传成功',
1=>'文件超过了 php.ini 中 upload_max_filesize 选项限制的值',
2=>'上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值',
3=>'文件只有部分被上传',
4=>'没有文件被上传',
6=>'找不到临时文件夹',
7=>'文件写入失败',
8=>'文件上传名字name未设置',
9=>'上传后缀名不允许',
10=>'文件创建目录有问题',
11=>'错误类型未知',
12=>'不是上传文件'
);
protected function getExt($filename){
$ext=strtolower(strrchr($filename,'.'));
return $ext;
}
protected function checkExt($ext){
return in_array(ltrim($ext,'.'),$this->allowExt);
}
protected function checkSize($size){
return $size<=$this->allowSize*1000*1000;
}
protected function mk_dir(){
$dir=date("Ymd",time());
$dir=ROOT."/test/upload/img/".$dir;
if(!is_dir($dir)){
mkdir($dir,0777,true);
}
return $dir;
}
protected function random($n){
if($n<=0){
return false;
}
$str="0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
$str=substr(str_shuffle($str),0,$n);
return $str;
}
function getErr(){
return $this->error[$this->errno];
}
function up($name){
if(!isset($_FILES[$name])){
return false;
}
$upload=$_FILES[$name];
$ext=$this->getExt($upload['name']);
if(!$this->checkExt($ext)){
$this->errno=9;
return false;
}
if(!$this->checkSize($upload['size'])){
$this->errno=1;
return fasle;
}
if($this->error=$upload['error']>0){
$this->errno=11;
return false;
}
$path=$this->mk_dir()."/".$this->random(8).$ext;
if(!move_uploaded_file($upload['tmp_name'],$path)) {
$this->errno=10;
return false;
}
$path=str_replace('ROOT','',$path);
return $path;
}
}
$p=new Upload();
if($path=$p->up('pic')){
echo"上传成功";
echo $path;
}else{
echo $p->getErr();
}
?>
//print_r($_FILES['pic']);
//print_r($_SERVER);
header("Content-type:text/html; charset=utf-8");
date_default_timezone_set("PRC");
define("ROOT",$_SERVER['DOCUMENT_ROOT']);
class Upload{
protected $allowExt=array('jpg','png','gif','bmp');
protected $allowSize=2;
protected $errno=0;
protected $error=array(
0=>'文件上传成功',
1=>'文件超过了 php.ini 中 upload_max_filesize 选项限制的值',
2=>'上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值',
3=>'文件只有部分被上传',
4=>'没有文件被上传',
6=>'找不到临时文件夹',
7=>'文件写入失败',
8=>'文件上传名字name未设置',
9=>'上传后缀名不允许',
10=>'文件创建目录有问题',
11=>'错误类型未知',
12=>'不是上传文件'
);
protected function getExt($filename){
$ext=strtolower(strrchr($filename,'.'));
return $ext;
}
protected function checkExt($ext){
return in_array(ltrim($ext,'.'),$this->allowExt);
}
protected function checkSize($size){
return $size<=$this->allowSize*1000*1000;
}
protected function mk_dir(){
$dir=date("Ymd",time());
$dir=ROOT."/test/upload/img/".$dir;
if(!is_dir($dir)){
mkdir($dir,0777,true);
}
return $dir;
}
protected function random($n){
if($n<=0){
return false;
}
$str="0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
$str=substr(str_shuffle($str),0,$n);
return $str;
}
function getErr(){
return $this->error[$this->errno];
}
function up($name){
if(!isset($_FILES[$name])){
return false;
}
$upload=$_FILES[$name];
$ext=$this->getExt($upload['name']);
if(!$this->checkExt($ext)){
$this->errno=9;
return false;
}
if(!$this->checkSize($upload['size'])){
$this->errno=1;
return fasle;
}
if($this->error=$upload['error']>0){
$this->errno=11;
return false;
}
$path=$this->mk_dir()."/".$this->random(8).$ext;
if(!move_uploaded_file($upload['tmp_name'],$path)) {
$this->errno=10;
return false;
}
$path=str_replace('ROOT','',$path);
return $path;
}
}
$p=new Upload();
if($path=$p->up('pic')){
echo"上传成功";
echo $path;
}else{
echo $p->getErr();
}
?>
0 0
- PHP封装上传类
- php封装图片上传类
- PHP文件上传类封装
- 原生PHP上传封装类
- 在php中将上传封装成类
- 在php中将上传封装成类
- PHP 原生态图片上传封装类
- php使用upload封装类上传文件
- php封装类 实现图片上传
- PHP 封装自己的图片上传类
- PHP封装成类(文件上传)
- PHP上传文件封装
- php封装类实现的图片上传可直接引用
- php----图片上传封装类:单张,多张图片上传,生成缩略图
- PHP文件上传操作和封装
- php封装一个多文件上传
- PHP单文件上传原理及上传函数的封装
- php - 封装 - curl类
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- LeetCode OJ Employees Earning More Than Their Managers
- 第五周项目1——深复制体验(3)
- PHP在线编辑器fckeditor应用
- TCP连接建立过程中为什么需要“三次握手”
- PHP封装上传类
- redhad安装gcc问题---解决依赖问题
- UIImageview and UIImage 之Swift学习
- 第六周项目四--成员函数、友元函数和一般函数的区别(求两点的距离)
- PHP封装Mysql工具类
- linux 进程内存解析
- 数字图像处理学习笔记:图像保存路径问题
- vb.net 总结
- n a^o7 ! 2012年"浪潮杯"山东省第三届ACM大学生程序设计竞赛 队友不在,只好划水。。。