国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP多文件上傳實例

2024-05-04 23:37:34
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP多文件上傳的方法,可實現針對指定后綴文件的批量上傳功能,非常具有實用價值,需要的朋友可以參考下

本文實例講述了PHP多文件上傳的方法。分享給大家供大家參考。具體如下:

 

 
  1. <?php 
  2. define('ROOT','D:/Program Files/www/test/'); 
  3. class Files_Tool{ 
  4. protected static $allowExt=array('.jpg','.jpeg','.png','.gif','.bmp','.svg','.chm','.pdf','.zip','.rar','.tar','.gz','.bzip2','.ppt','.doc'); 
  5. public static $wrong=array(); 
  6. public static $path=array(); 
  7. protected static $error=array( 
  8. 0=>'文件上傳失敗,沒有錯誤發生,文件上傳成功'
  9. 1=>'文件上傳失敗,上傳的文件超過了 php.ini中upload_max_filesize 選項限制的值'
  10. 2=>'文件上傳失敗,上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值'
  11. 3=>'文件上傳失敗,文件只有部分被上傳'
  12. 4=>'文件上傳失敗,沒有文件被上傳'
  13. 5=>'文件上傳失敗,未允許的后綴'
  14. 6=>'文件上傳失敗,找不到臨時文件夾.PHP 4.3.10 和 PHP 5.0.3 引進'
  15. 7=>'文件上傳失敗,文件寫入失敗.PHP 5.1.0 引進'
  16. 8=>'文件上傳失敗,未接收到表單域的NAME'
  17. 9=>'文件上傳失敗,,錯誤未知' 
  18. ); 
  19. public static function upload($name){ 
  20. //檢測是否接收到表單域的NAME 
  21. if(!isset($_FILES[$name])){ 
  22. self::$wrong[]=8; 
  23. return false
  24. //3維數組簡化成2維數組 
  25. $files=array_shift($_FILES); 
  26. //獲取后綴 
  27. $files=self::get_Ext($files); 
  28. //處理文件次數 
  29. $n=count($files['name']); 
  30. for($i=0;$i<$n;$i++){ 
  31. //查看當前文件是否有錯誤信息,有則跳過當前文件,處理下個文件 
  32. if($files['error'][$i]!=0){  
  33. self::$wrong[$i+1]=$files['error'][$i]; 
  34. continue
  35. //查看當前文件的后綴,是否允許,如果不允許,跳過當前文件 
  36. if(!in_array($files['name'][$i],self::$allowExt)){ 
  37. self::$wrong[$i+1]=5; 
  38. continue
  39. //路徑 
  40. $dir=self::time_Dir(); 
  41. //文件名 
  42. $name=self::rand_Name(); 
  43. //后綴 
  44. $ext=$files['name'][$i]; 
  45. //文件位置 
  46. $path=$dir.$name.$ext; 
  47. //移動臨時文件,如果失敗,跳過當前文件 
  48. if(!move_uploaded_file($files['tmp_name'][$i],$path)){ 
  49. self::$wrong[$i]=9; 
  50. continue
  51. //存入路徑 
  52. self::$path[$i+1]=strtr($path,array(ROOT=>'')); 
  53. return self::$path; 
  54. //獲取后綴的方法 
  55. protected static function get_Ext($arr){ 
  56. if(!is_array($arr) || !isset($arr['name'])){return false;} 
  57. foreach($arr['name'] as $k=>$v){ 
  58. $arr['name'][$k]=strtolower(strrchr($v,'.')); 
  59. return $arr; 
  60. //以日期生成路徑 
  61. protected static function time_Dir(){ 
  62. $dir=ROOT.'Data/images/'.date('Y/m/d/',time()); 
  63. if(!is_dir($dir)){ 
  64. mkdir($dir,0777,true); 
  65. return $dir; 
  66. //生成隨機文件名 
  67. protected static function rand_Name(){ 
  68. $str=str_shuffle('1234567890qwertyuiopasdfghjklzxcvbnm'); 
  69. $str=substr($str,0,6); 
  70. return $str; 
  71. //錯誤接口 
  72. public static function errors(){ 
  73. foreach(self::$wrong as $k=>$v){ 
  74. self::$wrong[$k]='第'.$k.'個'.self::$error[$k]; 
  75. return self::$wrong; 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富民县| 图木舒克市| 应城市| 伊宁市| 界首市| 含山县| 乐东| 司法| 班玛县| 台前县| 海盐县| 台前县| 洪雅县| 霍林郭勒市| 齐齐哈尔市| 仁寿县| 潮州市| 龙陵县| 凤翔县| 门头沟区| 龙川县| 漯河市| 定州市| 察哈| 镇远县| 重庆市| 大埔县| 武夷山市| 青州市| 松滋市| 腾冲县| 济宁市| 江油市| 汝阳县| 香格里拉县| 苍溪县| 灌阳县| 阳信县| 荥经县| 平乐县| 石棉县|