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

創(chuàng)新互聯(lián)公司專注于越秀企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設,購物商城網(wǎng)站建設。越秀網(wǎng)站建設公司,為越秀等地區(qū)提供建站服務。全流程按需制作網(wǎng)站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
1.首先我們開始判斷文件類型是否為圖片類型用到的函數(shù)
- {
- strrchr:查找字符串在另一個字符串中***一次出現(xiàn)的位置,并返回從該位置到字符串結(jié)尾的所有字符。
- substr: 取部份字符串。
- $HTTP_POST_FILES['file']['name']:獲取當前上傳的文件全稱。
- }
圖片類型就是“.”后面的字符(比如:一個文件名稱為XXX.JPG 那么它的類型就是“.”后面的JPG)。 我們可以用PHP中的函數(shù)來截取上傳者文件名字的。我們來寫個獲取文件類型的函數(shù)
- function type()
- {
- return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1);
- }
- ?>
2.若是則上傳文件,然后重命名文件用到的函數(shù)
- {
- strtolower:把字符串的字母全部轉(zhuǎn)換為小寫字母.
- in_array: 函數(shù)在數(shù)組中搜索給定的值。
- implode:函數(shù)把數(shù)組元素組合為一個字符串
- random:隨機生成的數(shù)
- $_FILES['userfile']['name']:上傳文件名稱
- $uploaddir:自己定義的變量。比如在同一個文件夾里面,你想把上傳的文件放到這個文件夾的FILE文件夾下,你可以這樣定義$uploaddir="./file/";注意寫法
- }
#T#這邊會出現(xiàn)很多問題,***先寫一個能上傳類型的數(shù)組。第二判斷文件合法性。第三給文件重名。*(這邊判斷文件大小就不寫了)先定義允許上傳文件的類型數(shù)組:$type=array("jpg","gif","bmp","jpeg","png");第二用一個IF。。else。。寫一個判斷文件合法性的控制流語句。
- if(!in_arry(strtolower(type()),$type))//如果不存在能上傳的類型
- {
- $text=implode('.',$type);
- echo "您只能上傳以下類型文件: ",$text,"
";- }
下面就是給他們重新命名了,
- else
- {
- $filename=explode(".",$_FILES['userfile']['name']);//把上傳的文件名以“.”好為準做一個數(shù)組。
- $time=date("m-d-H-i-s");//去當前上傳的時間
- $filename[0]=$time;//取文件名t替換
- name=implode(".",$filename); //上傳后的文件名
- $uploadfile=$uploaddir.$name;//上傳后的文件名地址
- }
3.***把文件上傳到指定目錄,成功上傳后輸出上傳圖片的預覽用到的函數(shù)
- {
- move_uploaded_file:執(zhí)行上傳文件
- }
- if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))
- {
- echo "
您的文件已經(jīng)上傳完畢 上傳圖片預覽: "; src='$uploadfile'>
- echo"
href='javascrīpt:history.go(-1)'>繼續(xù)上傳 ";- }
- else
- {
- echo"傳輸失敗!";
- }
這樣就OK 一個簡單的上傳圖片的程序?qū)懲?。假如你還想完善你的功能你可以自己添加!
網(wǎng)頁名稱:PHP上傳圖片三個步驟詳細分析
轉(zhuǎn)載注明:http://fisionsoft.com.cn/article/copdoeo.html


咨詢
建站咨詢
