不废话了,具体请看下文代码示例讲解。
form.php
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<html> <head> <meta http-equiv= "content-type" content= "text/html" charset= "utf-8" > <title>Upload Image</title> </head> <body> <form method= "post" action= "upload.php" enctype= "multipart/form-data" > <input type= "hidden" name= "MAX_FILE_SEZE" value= "2000000" > <input type= "file" name= "file" value= "view" > <input type= "submit" value= "upload" name= "B1" > </form> </body> </html> |
upload.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php include ( "check.php" ); // 引入自定义函数文件 $type = array ( "jpg" , "gif" , "bmp" , "jpeg" , "png" ); // 判断上传文件类型 $fileext = strtolower (fileext( $_FILES [ 'file' ][ 'name' ])); $uploadfilename = random(8); if (in_array( $fileext , $type )){ $filename = explode ( "." , $_FILES [ 'file' ][ 'name' ]); if ( is_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ])){ // echo $_FILES['file']['tmp_name']; $flag = move_uploaded_file( $_FILES [ 'file' ][ 'tmp_name' ], "/Library/WebServer/Documents/test/" . $uploadfilename . "." . $fileext ); if ( $flag ){ echo "上传成功!" ; } else { echo "Error." ; } echo "<a href='javascript:history.go(-1)'>Back</a>" ; } } |
check.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
|
<?php header( "Content-type:text/html;charset=utf8" ); // 获取文件后缀名函数 function fileext( $filename ){ $sTemp = strrchr ( $filename , "." ); return substr ( $sTemp , 1); } function fileext2( $filename ){ $sTemp = explode ( "." , $filename ); return $sTemp [ count ( $sTemp )-1]; } // 生成随机文件名函数 function random( $length ){ $captchaSource = "0123456789abcdefghijklmnopqrstuvwxyz这是一个随机打印输出字符串的例子" ; $captchaResult = "2015" ; // 随机数返回值 $captchaSentry = "" ; // 随机数中间变量 for ( $i =0; $i < $length ; $i ++){ $n = rand(0, 35); # strlen ( $captchaSource )); if ( $n >= 36){ $n = 36 + ceil (( $n -36)/3) * 3; $captchaResult .= substr ( $captchaSource , $n , 3); } else { $captchaResult .= substr ( $captchaSource , $n , 1); } } return $captchaResult ; } ?> |
将三个文件整合成一个:
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
|
<?php // 获取文件后缀名函数 function fileext( $filename ){ $sTemp = strrchr ( $filename , "." ); return substr ( $sTemp , 1); } function fileext2( $filename ){ $sTemp = explode ( "." , $filename ); return $sTemp [ count ( $sTemp )-1]; } // 生成随机文件名函数 function random( $length ){ $captchaSource = "0123456789abcdefghijklmnopqrstuvwxyz这是一个随机打印输出字符串的例子" ; $captchaResult = "2015" ; // 随机数返回值 $captchaSentry = "" ; // 随机数中间变量 for ( $i =0; $i < $length ; $i ++){ $n = rand(0, 35); # strlen ( $captchaSource )); if ( $n >= 36){ $n = 36 + ceil (( $n -36)/3) * 3; $captchaResult .= substr ( $captchaSource , $n , 3); } else { $captchaResult .= substr ( $captchaSource , $n , 1); } } return $captchaResult ; } $type = array ( "jpg" , "gif" , "bmp" , "jpeg" , "png" ); // 判断上传文件类型 $fileext = strtolower (fileext( $_FILES [ 'file' ][ 'name' ])); $uploadfilename = random(8); if (in_array( $fileext , $type )){ $filename = explode ( "." , $_FILES [ 'file' ][ 'name' ]); if ( is_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ])){ // echo $_FILES['file']['tmp_name']; $flag = move_uploaded_file( $_FILES [ 'file' ][ 'tmp_name' ], "/Library/WebServer/Documents/test/" . $uploadfilename . "." . $fileext ); if ( $flag ){ echo "上传成功!" ; } else { echo "Error." ; } echo "<a href='javascript:history.go(-1)'>Back</a>" ; } } ?> <html> <head> <meta http-equiv= "content-type" content= "text/html" charset= "utf-8" > <title>Upload Image</title> </head> <body> <form method= "post" action= "" enctype= "multipart/form-data" > <input type= "hidden" name= "MAX_FILE_SEZE" value= "2000000" > <input type= "file" name= "file" value= "view" > <input type= "submit" value= "upload" name= "B1" > </form> </body> </html> |
以上内容就是给大家讲解的php上传功能集后缀名判断和随机命名(强力推荐),希望大家喜欢。