本文实例讲述了php上传图片类及用法。分享给大家供大家参考,具体如下:
1.类文件名为:upclass.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<?php class upclass{ public $previewsize =0.125 ; //预览图片比例 public $preview =0; //是否生成预览,是为1,否为0 public $datetime ; //随机数 public $ph_name ; //上传图片文件名 public $ph_tmp_name ; //图片临时文件名 public $ph_path = "./userimg/" ; //上传文件存放路径 public $ph_type ; //图片类型 public $ph_size ; //图片大小 public $imgsize ; //上传图片尺寸,用于判断显示比例 public $al_ph_type = array ( 'image/jpg' , 'image/jpeg' , 'image/png' , 'image/pjpeg' , 'image/gif' , 'image/bmp' , 'image/x-png' ); //允许上传图片类型 public $al_ph_size =1000000; //允许上传文件大小 function __construct(){ $this ->set_datatime(); } function set_datatime(){ $this ->datetime= date ( "YmdHis" ); } //获取文件类型 function get_ph_type( $phtype ){ $this ->ph_type= $phtype ; } //获取文件大小 function get_ph_size( $phsize ){ $this ->ph_size= $phsize . "<br>" ; } //获取上传临时文件名 function get_ph_tmpname( $tmp_name ){ $this ->ph_tmp_name= $tmp_name ; $this ->imgsize= getimagesize ( $tmp_name ); } //获取原文件名 function get_ph_name( $phname ){ $this ->ph_name= $this ->ph_path. $this ->datetime. strrchr ( $phname , "." ); //strrchr获取文件的点最后一次出现的位置 //$this->ph_name=$this->datetime.strrchr($phname,"."); //strrchr获取文件的点最后一次出现的位置 return $this ->ph_name; } // 判断上传文件存放目录 function check_path(){ if (! file_exists ( $this ->ph_path)){ mkdir ( $this ->ph_path); } } //判断上传文件是否超过允许大小 function check_size(){ if ( $this ->ph_size> $this ->al_ph_size){ $this ->showerror( "上传图片超过2000KB" ); } } //判断文件类型 function check_type(){ if (!in_array( $this ->ph_type, $this ->al_ph_type)){ $this ->showerror( "上传图片类型错误" ); } } //上传图片 function up_photo(){ if (!move_uploaded_file( $this ->ph_tmp_name, $this ->ph_name)){ $this ->showerror( "上传文件出错" ); } } //图片预览 function showphoto(){ if ( $this ->preview==1){ if ( $this ->imgsize[0]>2000){ $this ->imgsize[0]= $this ->imgsize[0]* $this ->previewsize; $this ->imgsize[1]= $this ->imgsize[1]* $this ->previewsize; } echo ( "<img src=\"{$this->ph_name}\" width=\"{$this->imgsize['0']}\" height=\"{$this->imgsize['1']}\">" ); } } //错误提示 function showerror( $errorstr ){ echo "<script language=javascript>alert('$errorstr');location='javascript:history.go(-1)';</script>" ; exit (); } function save(){ $this ->check_path(); $this ->check_size(); $this ->check_type(); $this ->up_photo(); $this ->showphoto(); } } ?> |
2.html页面:
1
2
3
4
|
< form action = "upphoto.php" method = "post" enctype = "multipart/form-data" > 图片来源:< input type = "file" name = "photo" id = "photo" > < input type = "submit" name = "submit" value = "上传" > </ form > |
3.调用类的文件名为:upphoto.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php header( "Content-Type:text/html; charset=utf-8" ); //类的实例化: include ( "upclass.php" ); //类的文件名是upoop.php $up = new upclass(); $submit = $_POST [ 'submit' ]; if ( $submit == "上传" ){ $up ->get_ph_tmpname( $_FILES [ 'photo' ][ 'tmp_name' ]); $up ->get_ph_type( $_FILES [ 'photo' ][ 'type' ]); $up ->get_ph_size( $_FILES [ 'photo' ][ 'size' ]); $up ->get_ph_name( $_FILES [ 'photo' ][ 'name' ]); $up ->save(); } ?> <?php $images = $up ->get_ph_name( $_FILES [ 'photo' ][ 'name' ]); echo "<img src='$images' />" ; ?> |
希望本文所述对大家PHP程序设计有所帮助。