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

PHP上傳圖片三個步驟詳細分析

編輯:關於PHP編程

學習PHP時,你可能會遇到PHP上傳圖片問題,這裡將介紹PHP上傳圖片問題的解決方法,在這裡拿出來和大家分享一下。今天我們就開始一起學習PHP上傳圖片。上傳圖片原理:首先判斷文件類型是否為圖片格式,若是則上傳文件,然後重命名文件(一般都是避免上傳文件重名,現在基本上都是以為時間來命名),接著把文件上傳到指定目錄,成功上傳後輸出上傳圖片的預覽。

1.首先我們開始判斷文件類型是否為圖片類型用到的函數

  1. {  
  2. strrchr:查找字符串在另一個字符串中最後一次出現的位置,並返回從該位置到字符串結尾的所有字符。  
  3. substr: 取部份字符串。  
  4. $HTTP_POST_FILES['file']['name']:獲取當前上傳的文件全稱。  

圖片類型就是“.”後面的字符(比如:一個文件名稱為XXX.JPG 那麼它的類型就是“.”後面的JPG)。 我們可以用PHP中的函數來截取上傳者文件名字的。我們來寫個獲取文件類型的函數

  1. <? 
  2. function type()  
  3. {  
  4. return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1);  
  5. }  
  6. ?> 

2.若是則上傳文件,然後重命名文件用到的函數

  1. {  
  2. strtolower:把字符串的字母全部轉換為小寫字母.  
  3. in_array: 函數在數組中搜索給定的值。  
  4. implode:函數把數組元素組合為一個字符串  
  5. random:隨機生成的數  
  6. $_FILES['userfile']['name']:上傳文件名稱  
  7. $uploaddir:自己定義的變量。比如在同一個文件夾裡面,你想把上傳的文件放到這個文件夾的FILE文件夾下,你可以這樣定義$uploaddir="./file/";注意寫法  

這邊會出現很多問題,第一先寫一個能上傳類型的數組。第二判斷文件合法性。第三給文件重名。*(這邊判斷文件大小就不寫了)先定義允許上傳文件的類型數組:$type=array("jpg","gif","bmp","jpeg","png");第二用一個IF。。else。。寫一個判斷文件合法性的控制流語句。

  1. if(!in_arry(strtolower(type()),$type))//如果不存在能上傳的類型  
  2. {  
  3. $text=implode('.',$type);  
  4. echo "您只能上傳以下類型文件: ",$text,"<br>";  

下面就是給他們重新命名了,

  1. else  
  2. {  
  3. $filename=explode(".",$_FILES['userfile']['name']);//把上傳的文件名以“.”好為准做一個數組。  
  4. $time=date("m-d-H-i-s");//去當前上傳的時間  
  5. $filename[0]=$time;//取文件名t替換  
  6. name=implode(".",$filename); //上傳後的文件名  
  7. $uploadfile=$uploaddir.$name;//上傳後的文件名地址  

3.最後把文件上傳到指定目錄,成功上傳後輸出上傳圖片的預覽用到的函數

  1. {  
  2. move_uploaded_file:執行上傳文件  
  3. }  
  4. if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))  
  5. {  
  6. echo "<center>您的文件已經上傳完畢 上傳圖片預覽: </center><br><center><img src='$uploadfile'></center>";  
  7. echo"<br><center><a href='javascrīpt:history.go(-1)'>繼續上傳</a></center>";  
  8. }  
  9. else  
  10. {  
  11. echo"傳輸失敗!";  

這樣就OK 一個簡單的上傳圖片的程序寫完。假如你還想完善你的功能你可以自己添加!


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