首页 > 开发 > PHP > 正文

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

2024-05-04 23:39:00
字体:
来源:转载
供稿:网友

本篇文章给大家分享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. echo "<a href='javascript:history.go(-1)'>Back</a>"

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. return $captchaResult; 
  23. ?> 

将三个文件整合成一个:

 

 
  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. return $captchaResult; 
  22. $type = array("jpg""gif""bmp""jpeg""png"); 
  23. // 判断上传文件类型 
  24. $fileext = strtolower(fileext($_FILES['file']['name'])); 
  25. $uploadfilename = random(8); 
  26. if(in_array($fileext, $type)){ 
  27. $filename = explode(".", $_FILES['file']['name']); 
  28. if(is_uploaded_file($_FILES['file']['tmp_name'])){ 
  29. // echo $_FILES['file']['tmp_name']; 
  30. $flag = move_uploaded_file($_FILES['file']['tmp_name'], "/Library/WebServer/Documents/test/".$uploadfilename.".".$fileext); 
  31. if($flag){ 
  32. echo "上传成功!"
  33. }else
  34. echo "Error."
  35. echo "<a href='javascript:history.go(-1)'>Back</a>"
  36. ?> 
  37. <html> 
  38. <head> 
  39. <meta http-equiv="content-type" content="text/html" charset="utf-8"
  40. <title>Upload Image</title> 
  41. </head> 
  42. <body> 
  43. <form method="post" action="" enctype="multipart/form-data"
  44. <input type="hidden" name="MAX_FILE_SEZE" value="2000000"
  45. <input type="file" name="file" value="view"
  46. <input type="submit" value="upload" name="B1"
  47. </form> 
  48. </body> 
  49. </html> 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表