当前位置:首页 > PHP教程 > php文件操作 > 列表

php上传功能集后缀名判断和随机命名(强力推荐)

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-17 10:32:16 浏览: 评论:0 

本篇文章给大家分享php上传功能集后缀名判断和随机命名,代码写的简单易懂,感兴趣的朋友快来参考下吧。

不废话了,具体请看下文代码示例讲解。

form.php

  1. <html> 
  2. <head> 
  3.   <meta http-equiv="content-type" content="text/html" charset="utf-8"> 
  4.   <title>Upload Image</title> 
  5. </head> 
  6. <body> 
  7. <form method="post" action="upload.php" enctype="multipart/form-data"> 
  8.   <input type="hidden" name="MAX_FILE_SEZE" value="2000000"> 
  9.   <input type="file" name="file" value="view"> 
  10.   <input type="submit" value="upload" name="B1"> 
  11. </form> 
  12. </body> 
  13. </html> 

upload.php

  1. <?php 
  2. include("check.php"); // 引入自定义函数文件 
  3. $type = array("jpg""gif""bmp""jpeg""png"); 
  4. // 判断上传文件类型 
  5. $fileext = strtolower(fileext($_FILES['file']['name'])); 
  6. $uploadfilename = random(8); 
  7. if(in_array($fileext$type)){ 
  8.   $filename = explode("."$_FILES['file']['name']); 
  9.  
  10.     if(is_uploaded_file($_FILES['file']['tmp_name'])){ 
  11. //    echo $_FILES['file']['tmp_name']; 
  12.     $flag = move_uploaded_file($_FILES['file']['tmp_name'], "/Library/WebServer/Documents/test/".$uploadfilename.".".$fileext); 
  13.     if($flag){ 
  14.       echo "上传成功!"
  15.     }else
  16.       echo "Error."
  17.     } 
  18.     echo "<a href='javascript:history.go(-1)'>Back</a>"
  19.   } 

check.php

  1. <?php 
  2. header("Content-type:text/html;charset=utf8"); 
  3. // 获取文件后缀名函数 
  4. function fileext($filename){ 
  5.   $sTemp = strrchr($filename"."); 
  6.   return substr($sTemp, 1); 
  7. function fileext2($filename){ 
  8.   $sTemp = explode("."$filename); 
  9.   return $sTemp[count($sTemp)-1]; 
  10. // 生成随机文件名函数 
  11. function random($length){ 
  12.   $captchaSource = "0123456789abcdefghijklmnopqrstuvwxyz这是一个随机打印输出字符串的例子"
  13.   $captchaResult = "2015"// 随机数返回值 
  14.   $captchaSentry = ""// 随机数中间变量 
  15.   for($i=0;$i<$length;$i++){ 
  16.     $n = rand(0, 35); #strlen($captchaSource)); 
  17.     if($n >= 36){ 
  18.       $n = 36 + ceil(($n-36)/3) * 3; 
  19.       $captchaResult .= substr($captchaSource$n, 3); 
  20.     }else
  21.       $captchaResult .= substr($captchaSource$n, 1); 
  22.     } 
  23.   } 
  24.   return $captchaResult
  25. ?> 

将三个文件整合成一个:

  1. <?php 
  2. // 获取文件后缀名函数 
  3. function fileext($filename){ 
  4.   $sTemp = strrchr($filename, "."); 
  5.   return substr($sTemp, 1); 
  6. function fileext2($filename){ 
  7.   $sTemp = explode(".", $filename); 
  8.   return $sTemp[count($sTemp)-1]; 
  9. // 生成随机文件名函数 
  10. function random($length){ 
  11.   $captchaSource = "0123456789abcdefghijklmnopqrstuvwxyz这是一个随机打印输出字符串的例子"
  12.   $captchaResult = "2015"; // 随机数返回值 
  13.   $captchaSentry = ""; // 随机数中间变量 
  14.   for($i=0;$i<$length;$i++){ 
  15.     $n = rand(0, 35); #strlen($captchaSource)); 
  16.     if($n >= 36){ 
  17.       $n = 36 + ceil(($n-36)/3) * 3; 
  18.       $captchaResult .substr($captchaSource, $n, 3); 
  19.     }else{ 
  20.       $captchaResult .substr($captchaSource, $n, 1); 
  21.     } 
  22.   } 
  23.   return $captchaResult; 
  24. $type = array("jpg", "gif", "bmp", "jpeg", "png"); 
  25. // 判断上传文件类型 
  26. $fileext = strtolower(fileext($_FILES['file']['name'])); 
  27. $uploadfilename = random(8); 
  28. if(in_array($fileext, $type)){ 
  29.   $filename = explode(".", $_FILES['file']['name']); 
  30.   if(is_uploaded_file($_FILES['file']['tmp_name'])){ 
  31. //    echo $_FILES['file']['tmp_name']; 
  32.     $flag = move_uploaded_file($_FILES['file']['tmp_name'], "/Library/WebServer/Documents/test/".$uploadfilename.".".$fileext); 
  33.     if($flag){ 
  34.       echo "上传成功!"; 
  35.     }else{ 
  36.       echo "Error."; 
  37.     } 
  38.     echo "<a href='javascript:history.go(-1)'>Back</a>"; 
  39.   } 
  40. ?> 
  41. <html> 
  42. <head> 
  43.   <meta http-equiv="content-type" content="text/html" charset="utf-8"> 
  44.   <title>Upload Image</title> 
  45. </head> 
  46. <body> 
  47. <form method="post" action="" enctype="multipart/form-data"> 
  48.   <input type="hidden" name="MAX_FILE_SEZE" value="2000000"> 
  49.   <input type="file" name="file" value="view"> 
  50.   <input type="submit" value="upload" name="B1"> 
  51. </form> 
  52. </body> 
  53. </html> 

以上内容就是给大家讲解的php上传功能集后缀名判断和随机命名(强力推荐),希望大家喜欢。

Tags: php上传功能

分享到: