PHP圖片文件上傳類型限制擴展名限制大小限制與自動檢測目錄創建。


程序測試網址:http://blog.z88j.com/fileuploadexample/index.html

代碼分為兩部分:

一部分form表單:

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <title>文件上傳案例-file upload example</title>
 5 <meta http-equiv="content-type" contnet="text/html" charset="utf-8"/>
 6 </head>
 7 <body>
 8 <h1>文件上傳支持圖片.gif.png.jpg.jpeg限制200kb大小的文件</h1>
 9 <form method="POST" action="upload_file.php" enctype="multipart/form-data">
10 <lable for="file">File:</lable>
11 <input name="file" type="file" id="file"/><br/>
12 <input type="submit" value="上傳文件"/>
13 </form>
14 </body>
15 </html>

二部分PHP后台上傳驗證程序:

 1 <meta charset="utf-8"/>
 2 <?php
 3 $array=array("gif","png","jpg","jpeg");//賦值一個數組
 4 $tmp=explode(".",$_FILES['file']['name']);//用explode()函數把字符串打散成為數組。
 5 $extension=end($tmp);//用end獲取數組最后一個元素
 6 if($_FILES['file']['error']>0){//判斷提交上的文件是否為空或錯誤
 7     echo "文件未選擇,或非法文件!錯誤:".$_FILES['file']['error'];
 8 }else{
 9     if((($_FILES['file']['type']=="image/gif")//判斷提交上的文件的文件類型是否正確和文件擴展名是否正確,文件大小是否超2048kb。
10     ||($_FILES['file']['type']=="image/png")
11     ||($_FILES['file']['type']=="image/jpeg")
12     ||($_FILES['file']['type']=="image/jpg")
13     ||($_FILES['file']['type']=="image/pjpeg")
14     ||($_FILES['file']['type']=="image/x-png"))
15     &&($_FILES['file']['size']<204800)
16     &&in_array($extension,$array)){
17         echo "文件大小和文件擴展名驗成功!<br/>";
18         if(file_exists("upload/")){//用file_exists函數檢測是否有upload目錄,用if判斷。
19             if(file_exists("upload/".$_FILES['file']['name'])){//用file_exists函數檢測是否在upload目錄下有['name']文件。用if判斷。
20             echo "已存在該文件名!位置:upload/".$_FILES['file']['name'];
21         }else{//顯示各個信息,然后用move_upload_file函數把臨時目錄文件移動到upload目錄。
22             echo "上傳完成,下面是信息:<br/>";
23             echo "上傳文件名:".$_FILES['file']['name']."<br/>";
24             echo "上傳類型:".$_FILES['file']['type']."<br/>";
25             echo "上傳文件大小:".$_FILES['file']['size']."<br/>";
26             echo "上傳文件臨時緩存位置:".$_FILES['file']['tmp_name']."<br/>";
27             move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);//這里我們用到兩個參數,一是被移到的文件,二是移動到的目標位置。
28             echo "儲存服務器相對的位置為:/upload/".$_FILES['file']['name'];
29         }
30         }else{//沒有目錄的情況下,使用mkdir函數創建upload目錄。
31             echo "不存在upload目錄,已自動創建upload/目錄";
32             mkdir("upload");
33         }
34     }else{
35         echo "擴展名和文件大小不正確,擴展名支持gif,jpg,png,jpeg,文件大小支持200kb";
36     }
37     //echo "文件臨時儲存的位置:".$_FILES['file']['tmp_name'];//把文件獲取到臨時儲存的位置里面,並打印出來;
38     //move_uploaded_file($_FILES['file']['tmp_name'],"upload/".$_FILES['file']['name']);//把臨時儲存的文件移到upload目錄下。
39 }
40 ?>

 后台PHP程序經過四次if判斷進行四次判斷上傳的文件:

第一次if判斷上傳的文件是否空提交或者是否有錯誤。

第二次if判斷上傳的文件類型是否正確,擴展名是否匹配,大小是否合理。

第三次if判斷上傳的文件,所屬的目錄是否存在,假設不存在,系統會自動用mkdir函數創建一個upload目錄;

第四次if判斷上傳的文件是否已存在,假設存在會進行提示並停止上傳。相反如果不存在會進行上傳操作;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM