本文實(shí)例講述了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 ; //預(yù)覽圖片比例 public $preview =0; //是否生成預(yù)覽,是為1,否為0 public $datetime ; //隨機(jī)數(shù) public $ph_name ; //上傳圖片文件名 public $ph_tmp_name ; //圖片臨時(shí)文件名 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>" ; } //獲取上傳臨時(shí)文件名 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獲取文件的點(diǎn)最后一次出現(xiàn)的位置 //$this->ph_name=$this->datetime.strrchr($phname,"."); //strrchr獲取文件的點(diǎn)最后一次出現(xiàn)的位置 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( "上傳圖片類型錯(cuò)誤" ); } } //上傳圖片 function up_photo(){ if (!move_uploaded_file( $this ->ph_tmp_name, $this ->ph_name)){ $this ->showerror( "上傳文件出錯(cuò)" ); } } //圖片預(yù)覽 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']}\">" ); } } //錯(cuò)誤提示 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.調(diào)用類的文件名為: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" ); //類的實(shí)例化: 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程序設(shè)計(jì)有所幫助。