本文实例讲述了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程序设计有所帮助。