亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP對文件上傳的處理方法

2024-09-04 11:45:10
字體:
來源:轉載
供稿:網友

在php中文件上傳我們由html客戶端與服務器端php處理組成,中間會有一些由files全局變量對數據判斷與移動操作,下面一起來看看.

$_FILES參數詳解:

$_FILES["file"]["name"] – 被上傳文件的名稱

$_FILES["file"]["type"] – 被上傳文件的類型

$_FILES["file"]["size"] – 被上傳文件的大小,以字節計

$_FILES["file"]["tmp_name"] – 存儲在服務器的文件的臨時副本的名稱

$_FILES["file"]["error"] – 由文件上傳導致的錯誤代碼

$_FILES["file"]["error"]中的["error"]值情況:

html客戶端

1.客戶端上傳設置

文件上傳的最基本方法,是使用HTML表單選擇本地文件進行提交,在form表單中可以通過<input type=”file”>標記選擇本地文件,如果支持文件上傳操作,必須在<form>標簽中將enctype和method兩個屬性指明相應的值,如下所示:

★enctype=”multipart/form-data”用來指定表單編碼數據方式,讓服務器知道,我們要傳遞一個文件,并帶有常規的表單信息。

★method=”POST”用來指明發送數據的方法.

另外,還需要在form表單中設置一個hidden類型的input框,其中name的值為MAX_FILL_SIZE的隱藏值域,并通過設置其VALUE的值限制上傳文件的大小(單位字節),但這個值不能超過PHP的配置文件中upload_max_filesize值設置的大小,文件上傳表單代碼如下所示:

  1. <html> 
  2. <head><title>文件上傳</title></head> 
  3. <body> 
  4. <form action='upload.php' method="post" enctype="multipart/form-data"
  5. <input type="hidden" name="MAX_FILE_SIZE" value="1000000"
  6. 選擇文件<input type="file" name="上傳文件"
  7. </form> 
  8. </body> 
  9. </html> 

upload.php服務器端,代碼如下:

  1. <?php  
  2. $allowtype = array('gif','png','jpg'); 
  3. $size = 1000000; 
  4. $path = "./uploads"//設置上傳后保存文件的路徑 
  5.  
  6. //判斷文件是否可以成功上傳到服務器,$_FILES['myfile']['error']為0則表示上傳成功 
  7. if ($_FILES['myfile']['error']>0){ 
  8. echo '上傳錯誤:'
  9. switch($_FILES['myfile']['error']){ 
  10. case 1: die('上傳文件大小超出了PHP配置文件中的約定值:upload_max_filesize');break
  11. case 2:die('上傳文件大小超出表單中的約定值:MAX_FILE_SIZE');break
  12. case 3: die('上傳文件只部分被上載');break
  13. case 4: die('沒有上傳任何文件');break
  14. default:die('未知錯誤'); 
  15.  
  16. //判斷上傳的文件是否為允許的文件類型,通過文件名的后綴名 
  17. $hz = array_pop(explode(".",$_FILES['myfile']['name'])); 
  18. //通過判斷文件的后綴方式,來確定文件是否是允許上傳的文件類型 
  19. if(!in_array($hz$allowtype)){ 
  20. die("這個后綴是<b>($hz)</b>,不是允許的文件類型"); 
  21.  
  22. //判斷上傳的文件是否為允許大小 
  23. if($_FILES['myfile']['size']> $size){ 
  24. die("超過了允許的<b>{$size}</b>字節大小"); 
  25.  
  26. //為了系統安全,也為了同名文件不會被覆蓋,上傳后將文件名實用系統定義 
  27. $filename = data("YmdHis").rand(100, 900).".".$hz
  28. //開源軟件:Vevb.com 
  29. //判斷是否為上傳文件 
  30. if(is_uploaded_file($_FILES['myfile']['tmp_name'])){ 
  31. if(!move_uploaded_file($_FILES['myfile']['tmp_name'], $path.'/'.$filename)){ 
  32. die('問題:不能將文件移動到指定目錄。'); 
  33. }else
  34. die("問題:上傳文件{$_FILES['myfile']['name']}不是一個合法的文件:"); 
  35. //如果文件上傳成功則輸出 
  36. echo "文件{$upfile}上傳成功,保存在目錄{$path}中,大小為{$_FILES['myfile']['size']}字節"
  37. ?> 

如果我們要多文件上傳只要簡單對于html上傳表單以數據形式操作,代碼如下:

  1. <form action="" method="post" enctype="multipart/form-data"
  2. <input type="hidden" name="MAX_FILE_SIZE" value=""
  3. <input type="file" name="pic[]" /><br><br> 
  4. <input type="file" name="pic[]" /><br><br> 
  5. <input type="file" name="pic[]" /><br><br> 
  6. <input type="file" name="pic[]" /><br><br> 
  7. <input type="submit" value="upload"/> 
  8. </form> 

然后對于upload.php處理文件我們只要遍歷數組pic[]就可以了.

  1. for($i=0;$i<count($up_info['name']);$i++){ 
  2. //這樣//foreach 循環處理多個文件上傳 

①函數is_uploaded_file()

該函數判斷指定的文件是否是通過HTTP POST上傳的,如果是則返回TRUE。用于防止潛在的攻擊者對原本不能通過腳本交互的文件進行非法管理,這可以用來確保惡意的用戶無法欺騙腳本去訪問本不能訪問的文件,例如/etc/passwd。此函數的原型如下所示:

bool is_uploaded_file(string) //判斷指定的文件是否是通過HTTP POST上傳的

為了能使此函數正常工作,唯一的參數必須指定類似于$_FILES['userfile']['tmp_name']的變量,才能判斷指定的文件確實是上傳文件。如果使用從客戶端上傳的文件名$_FILES['userfile']['name']則不能正常運作。

PHP上傳文件大小限制解決方法:

第一:在php.ini里面查看如下行:

  1. upload_max_filesize = 8M  
  2. post_max_size = 10M  
  3. memory_limit = 20M  

把這些值改成我所說的,看看有沒有問題,另外要確認上傳的 <form> 里沒有類似下面的這行<input type="hidden" name="MAX_FILE_SIZE" value="500000">這樣也是限制上傳大小用的.

第二:如果是apache 2 需要修改

/etc/httpd/conf.d/php.conf

中的LimitRequestBody 524288將524288(=512×1024)改大,比如5M(=5×1024×1024)這樣上傳就不會出現如上問題,上傳不響應,上傳現實該頁無法現實也將得到解決.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91成人福利在线| 国产成人精品久久二区二区| 中日韩午夜理伦电影免费| 亚洲精品视频中文字幕| 国产伦精品免费视频| 久久精品久久久久电影| 国产主播在线一区| 精品久久久视频| 中文国产成人精品久久一| 国产精品99一区| 91免费观看网站| 米奇精品一区二区三区在线观看| 日韩a**站在线观看| 日韩激情视频在线| 国产亚洲美女精品久久久| 亚洲成人亚洲激情| 亚洲欧美国产日韩中文字幕| 九九久久久久久久久激情| 亚洲自拍偷拍色图| 国产欧美日韩视频| 欧美放荡办公室videos4k| 国产精品在线看| 欧美性猛交xxxx黑人| 不卡av电影在线观看| 久久精品电影一区二区| 亚洲欧洲一区二区三区在线观看| 国产女人精品视频| 亚洲精品电影久久久| 亚洲片av在线| 久久久av网站| 亚洲视频在线免费观看| 九九久久国产精品| 亚洲欧洲午夜一线一品| 一区二区三区在线播放欧美| 亚洲欧洲第一视频| 国产精品678| 亚洲国产精品小视频| 九九视频直播综合网| 成人免费高清完整版在线观看| xxx欧美精品| 欧美裸体xxxx| 97人人做人人爱| 亚洲成人久久网| 国产精品爽爽爽爽爽爽在线观看| 欧美成人午夜免费视在线看片| 欧美精品videos另类日本| 亚洲精品成人久久电影| 国产一区二区三区视频| 亚洲精品狠狠操| 日韩av黄色在线观看| 国产亚洲视频中文字幕视频| 亚洲激情 国产| 美女福利精品视频| 美日韩精品免费视频| 欧美国产日韩中文字幕在线| 欧美日韩精品国产| 国产在线观看91精品一区| 日韩国产欧美精品在线| 国产成人精品最新| 亚洲精品日韩激情在线电影| 日韩av中文字幕在线播放| 美日韩丰满少妇在线观看| 中文字幕亚洲图片| 久久久免费在线观看| 亚洲精品日韩欧美| 欧美视频在线观看 亚洲欧| 国产日韩中文字幕| 97超级碰在线看视频免费在线看| 亚洲精品免费在线视频| 成人免费看片视频| 亚洲最大的成人网| 日韩视频精品在线| 中文字幕av一区二区三区谷原希美| 亚洲国产一区二区三区四区| 亚洲影院污污.| 欧美精品18videos性欧美| 亚洲a级在线观看| 国内精品久久久久伊人av| 国产精品久久久久久久久久久新郎| 人人爽久久涩噜噜噜网站| 国产精品一区二区性色av| 欧美wwwxxxx| 91成人在线视频| 欧美丝袜一区二区| 日韩毛片中文字幕| 日韩欧美国产骚| 欧美孕妇孕交黑巨大网站| 久久99精品国产99久久6尤物| 在线a欧美视频| 亚洲国产美女精品久久久久∴| 欧美性xxxx极品高清hd直播| 国产日韩在线免费| 一区二区三区四区精品| 色妞久久福利网| 欧美日韩午夜视频在线观看| 国产在线视频欧美| 国产精品久久久久久久久久尿| 欧美体内谢she精2性欧美| 日韩高清电影免费观看完整版| 亚洲精品国产品国语在线| 亚洲第一av在线| 亚洲一区二区三区sesese| 国外成人在线播放| 91福利视频在线观看| 欧美特级www| 精品国产一区二区三区四区在线观看| 成人性生交大片免费看视频直播| 91在线视频成人| 国产伦精品免费视频| 精品国产乱码久久久久久天美| 日本欧美一二三区| 国产精品男人的天堂| 亚洲精品美女视频| 欧美肥臀大乳一区二区免费视频| 久久精品中文字幕电影| 亚洲欧美日韩中文视频| 国产经典一区二区| 成人性教育视频在线观看| 亚洲aa中文字幕| 欧美最猛性xxxxx亚洲精品| 成人国产精品久久久久久亚洲| 亚洲自拍偷拍网址| 国产精品视频网| 国产一区二区黑人欧美xxxx| 欧美日韩aaaa| 中文字幕视频一区二区在线有码| 国产精品白丝av嫩草影院| 一本色道久久综合亚洲精品小说| 91在线无精精品一区二区| 日本老师69xxx| 国产精品亚洲片夜色在线| 成人欧美在线观看| 欧美激情网友自拍| 欧美激情第一页xxx| 久久久久久久久中文字幕| 北条麻妃在线一区二区| 欧美精品一区二区三区国产精品| 国产精品久久久久av| 最近2019中文免费高清视频观看www99| 亚洲人永久免费| 亚洲精品乱码久久久久久按摩观| 欧美日韩国产综合新一区| 久久99精品国产99久久6尤物| 亚洲2020天天堂在线观看| 久久视频在线免费观看| 国产精品黄页免费高清在线观看| 日韩精品极品在线观看| 欧美激情第99页| 国内精品视频在线| 一区二区三区亚洲| 国产成人精品在线播放| 欧美极品少妇xxxxⅹ喷水| 国产在线不卡精品| 亚洲欧美一区二区三区四区| 日韩欧美精品网址| 欧美精品激情在线| 丝袜美腿亚洲一区二区| 亚洲欧美另类自拍| 一区二区三区在线播放欧美| 色综合天天狠天天透天天伊人| 欧美日韩亚洲天堂| 欧美福利视频网站| 欧美中文在线免费| 欧美久久精品午夜青青大伊人|