本文实例讲述了php封装的单文件(图片)上传类。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<?php
//封装php中的单文件(图片)上传类
/*
//参数1:$file 文件数组 5个属性值 name,type,size,tmp,error
//参数2:文件保存的路径$path
//参数3:文件上传允许的类型 $allow数组 $allow=array('image/jpeg','image/jpg','image/png','image/gif')
//参数4: 允许文件上传的最大大小 $size
//返回值: return $imageName文件的名字
*/
header( 'content-type:text/html;charset=utf-8' );
class Upload{
//定义一个属性,专门保存错误信息
public static $error ;
//文件转移的方法
public function uploadFile( $file , $size , $path ){
if (! is_dir ( $path )){
$this ->mkPath( $path );
}
$allow = array ( 'image/jpeg' , 'image/jpg' , 'image/png' , 'image/gif' );
//首先判断文件是否已上传到临时目录
if (! is_array ( $file )){
Upload:: $error = '不是一个有效的文件' ;
return false;
}
//判断文件是否上传到临时目录成功
switch ( $file [ 'error' ]){
case 1:
Upload:: $error = '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。' ;
return false;
case 2:
Upload:: $error = '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。' ;
return false;
case 3:
Upload:: $error = '文件只有部分被上传' ;
return false;
case 4:
Upload:: $error = '没有文件被上传' ;
return false;
case 6:
Upload:: $error = '找不到临时文件夹' ;
return false;
case 7:
Upload:: $error = '文件写入失败' ;
return false;
}
//判断文件类型是否是图片
if (!in_array( $file [ 'type' ], $allow )){
Upload:: $error = '不是要求的文件类型' ;
return false;
}
//判断文件的大小是否在允许的范围内
if ( $file [ 'size' ]> $size ){
Upload:: $error = '超出允许最大文件大小' ;
return false;
}
//文件转移
if (move_uploaded_file( $file [ 'tmp_name' ], $path . '/' . $this ->getName( $file ))){
return $file [ 'name' ];
} else {
return Upload:: $error ;
}
}
//创建目录的方法
private function mkPath( $path ){
mkdir ( $path );
}
//文件重命名
private function getName( $file ){
return time(). $file [ 'name' ];
}
}
|
希望本文所述对大家PHP程序设计有所帮助。