程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 高手教你PHP上傳多張圖片

高手教你PHP上傳多張圖片

編輯:關於PHP編程

學習PHP時,你可能會遇到PHP上傳多張圖片問題,這裡將介紹PHP上傳多張圖片問題的解決方法,在這裡拿出來和大家分享一下。單張的圖片上傳是不復雜的,這裡涉及到PHP上傳多張圖片和對圖片格式的校驗,保證上傳的一定是圖片,防止上傳其他文件到服務器。

基本實現算法是使用數組的形式,把所有的圖片提交個一個數組,對數組的元素進行一個個的處理。PHP其實不過是Web服務器的一個模塊功能,所以首先要保證Web服務器的安全。當然Web服務器要安全又必須是先保證系統安全,這樣就扯遠了,無窮無盡。PHP可以和各種Web服務器結合,這裡也只討論Apache。非常建議以chroot方式安裝啟動Apache,這樣即使Apache和PHP及其腳本出現漏洞,受影響的也只有這個禁锢的系統,不會危害實際系統。以下為引用的內容:

  1. <?php 
  2.  
  3. //圖片目錄  
  4. $img_dir="../upload/";  
  5. //……html顯示上傳界面  
  6.  
  7. /*圖片上傳處理*/  
  8. //把圖片傳到服務器  
  9. //初始化變量  
  10.  
  11. $uploaded=0;  
  12. $unuploaded=0;  
  13.  
  14. //只允許五張圖片上傳  
  15.  
  16. for($i=0;$i<=5;$i++)  
  17. {  
  18. //獲取當前圖片的信息  
  19. $is_file=$_FILES['imgfile']['name'][$i];  
  20. //如果當前圖片不為空  
  21. if(!empty($is_file))  
  22. {  
  23. //把當前圖片的信息存儲到變量裡  
  24. $result[$i]="  
  25. <trclasstrclass=td2align=center> 
  26. <td>".$_FILES['imgfile']['name'][$i]."</td> 
  27. <td>".round($_FILES['imgfile']['size'][$i]/1024,2)."K</td> 
  28. <td>".$_FILES['imgfile']['type'][$i]."</td> 
  29. <td>";  
  30.  
  31. //判斷上傳的圖片的類型是不是jpg,gif,png,bmp中的一種,同時判斷是否上傳成功  
  32. if(  
  33.  
  34. $_FILES['imgfile']['type'][$i]=="image/pjpeg"||  
  35. $_FILES['imgfile']['type'][$i]=="image/gif"||  
  36. $_FILES['imgfile']['type'][$i]=="image/x-png"||  
  37. $_FILES['imgfile']['type'][$i]=="image/bmp"  
  38. )  
  39. {  
  40. //如果上傳的文件沒有在服務器上存在  
  41. if(!file_exists($img_dir.$_FILES['imgfile']['name'][$i]))  
  42. {  
  43. //把圖片文件從臨時文件夾中轉移到我們指定上傳的目錄中  
  44. move_uploaded_file($_FILES['imgfile']['tmp_name'][$i],  
  45. $img_dir.$_FILES['imgfile']['name'][$i]);  
  46. $result[$i].="成功";  
  47. $uploaded++;  
  48. }  
  49. else//如果文件已經在服務器上存在  
  50. {  
  51. $result[$i].="<fontcolor=red>文件已存在</font>";  
  52. $unuploaded++;  
  53. continue;  
  54. }  
  55. }  
  56. else  
  57. {  
  58. $result[$i].="<fontcolor=red>失敗</font>";  
  59. $unuploaded++;  
  60. }  
  61. $result[$i].="</td></tr>";  
  62. }//endif  
  63. }//endfor  
  64.  
  65.  
  66. //如果沒有選擇任何圖片  
  67. if(empty($result))  
  68. {  
  69. prompt_msg("錯誤信息","沒有選擇任何圖片。","返回上一步","uploadimg.php?action=upload");  
  70. exit();  
  71. }  
  72.  
  73. //顯示所有上傳後的結果  
  74. echo"<tablecellpaddingtablecellpadding=4cellspacing=1border=0class=tablewidth=400align=left> 
  75. <trclasstrclass=navialign=center> 
  76. <td>文件名</td> 
  77. <td>大小</td> 
  78. <td>類型</td> 
  79. <td>上傳結果</td> 
  80. </tr> 
  81. ";  
  82.  
  83. foreach($resultas$value)  
  84. {  
  85. echo$value;  
  86. }  
  87.  
  88. echo"<trclasstrclass=td1> 
  89. <tdcolspantdcolspan=4>共上傳".($uploaded+$unuploaded).",成功:$uploaded,失敗:<fontcolorfontcolor=red>$unuploaded</font></td> 
  90. </tr> 
  91. <trclasstrclass=navi> 
  92. <tdcolspantdcolspan=4align=center>[<ahrefahref='uploadimg.php?action=upload'title='繼續上傳'>繼續上傳</a>]
    &nbsp;&nbsp;&nbsp;&nbsp;[<ahrefahref='image.php'title='浏覽圖片'>浏覽圖片</a>]</td> 
  93. </tr> 
  94. </table> 
  95. ";  
  96. ?> 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved