當我們在實際操作上傳圖片原理:首先判斷文件類型是否為圖片格式,若是則上傳文件,然後重命名文件(一般都是避免上傳文件重名,現在基本上都是以為時間來命名),接著把文件上傳到指定目錄,成功上傳後輸出上傳圖片的預覽。
PHP上傳圖片1.首先我們開始判斷文件類型是否為圖片類型用到的函數
{ strrchr:查找字符串在另一個字符串中最後一次出現的位置,並返回從該位置到字符串結尾的所有字符。 substr: 取部份字符串。 $HTTP_POST_FILES['file']['name']:獲取當前上傳的文件全稱。 }
圖片類型就是“.”後面的字符(比如:一個文件名稱為XXX.JPG 那麼它的類型就是“.”後面的JPG)。 我們可以用PHP中的函數來截取上傳者文件名字的。我們來寫個獲取文件類型的函數
function type() { return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1); } ?>
PHP上傳圖片2.若是則上傳文件,然後重命名文件用到的函數
{ strtolower:把字符串的字母全部轉換為小寫字母. in_array: 函數在數組中搜索給定的值。 implode:函數把數組元素組合為一個字符串 random:隨機生成的數 $_FILES['userfile']['name']:上傳文件名稱 $uploaddir:自己定義的變量。比如在同一個文件夾裡面,你想把上傳的文件放到這個文件夾的FILE文件夾下,你可以這樣定義$uploaddir="./file/";注意寫法 }
這邊會出現很多問題,第一先寫一個能上傳類型的數組。第二判斷文件合法性。第三給文件重名。*(這邊判斷文件大小就不寫了)先定義允許上傳文件的類型數組:$type=array("jpg","gif","bmp","jpeg","png");第二用一個IF。。else。。寫一個判斷文件合法性的控制流語句。
if(!in_arry(strtolower(type()),$type))//如果不存在能上傳的類型 { $text=implode('.',$type); echo "您只能上傳以下類型文件: ",$text,"<br>"; }
下面就是給他們重新命名了,
- else {
- $filename=explode(".",$_FILES['userfile']['name']);
- //把上傳的文件名以“.”好為准做一個數組。
- $time=date("m-d-H-i-s");
- //去當前上傳的時間 $filename[0]=$time;
- //取文件名t替換
- name=implode(".",$filename);
- //上傳後的文件名
- $uploadfile=$uploaddir.$name;
- //上傳後的文件名地址 }
PHP上傳圖片3.最後把文件上傳到指定目錄,成功上傳後輸出上傳圖片的預覽用到的函數
- { move_uploaded_file:執行上傳文件 }
- if(move_uploaded_file
- ($_FILES['userfile']['tmp_name'],$uploadfile))
- { echo "
- <center>您的文件已經上傳完畢 上傳圖片預覽:
- center><br>
- <center><img src='$uploadfile'>center>";
- echo"<br><center>
- <a href='javascrīpt:history.go(-1)'>
- 繼續上傳a>center>"; }
- else { echo"傳輸失敗!"; }
以上就是PHP上傳圖片的相關方法介紹,希望對大家有所幫助。