国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php 入門級文件上傳詳解

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

上傳文件我們少不了move_uploaded_file函數本函數檢查并確保由 file 指定的文件是合法的上傳文件(即通過 php 的 http post 上傳機制所上傳的),如果文件合法,則將其移動為由 newloc 指定的文件.

如果 file 不是合法的上傳文件,不會出現任何操作,move_uploaded_file() 將返回 false.

如果 file 是合法的上傳文件,但出于某些原因無法移動,不會出現任何操作,move_uploaded_file() 將返回 false,此外還會發出一條警告.

先來看一個關于在上傳關表單設置:

  1. <html> 
  2. <head> 
  3. <title>a simple file upload form</title> 
  4. </head> 
  5. <body> 
  6. <form enctype="multipart/form-data" 
  7.    action="<?print $_server['php_self']?>" method="post"
  8. <p> 
  9. <input type="hidden" name="max_file_size" value="102400" /> 
  10. <input type="file" name="fupload" /><br/> 
  11. <input type="submit" value="upload!" /> 
  12. </p> 
  13. </form> 
  14. </body> 
  15. </html> 

這樣我們主設置的上傳文件最大不能超過102400字節了,在php中要實現文件上傳很簡單如下代碼:

  1. if ( $_files['fupload']['type'] == "image/gif" ) { 
  2.  
  3.          $source = $_files['fupload']['tmp_name']; 
  4.          $target = "upload/".$_files['fupload']['name']; 
  5.          move_uploaded_file( $source$target );// or die ("couldn't copy"); 
  6.          $size = getimagesize$target ); 
  7.  
  8.          $imgstr = "<p><img width="$size[0]" height="$size[1]" "
  9.          $imgstr .= "src="$target" alt="uploaded image" /></p>"
  10.  
  11.          print $imgstr

這樣就ko了,下面我們總結實例:

  1. <html>  
  2. <form enctype="multipart/form-data" action="" method="post">  
  3. <input type="hidden" name="max_file_size" value="6000000" /> <!--設置允許提交表單的最大字節數-->  
  4. 文件上傳: <input name="file" type="file" />  
  5. <input type="submit" value="上傳"/>  
  6. </form>  
  7. </html> 
  8. <?  
  9. //處理程序  
  10. function extend($file_name//定義獲取文件的擴展名函數  
  11. {$extend =explode("." , $file_name);  
  12. $va=count($extend)-1;  
  13. return strtolower($extend[$va]);} 
  14.  
  15. $dirname="../";//是否啟用上一層路徑,格式為:$dirname="../";或$dirname="http://www.cnblogs.com/";等等與$dir組合使用,注意不要溢出根路徑  
  16. $dir='upload/aa/bb';//設定上傳目錄,與上面的$dirname組合  
  17. $file=$_files['file'];//從文件域表單獲取文件  
  18. $filename=$file['name'] ;//獲取文件全名  
  19. $c_filesize=$file['size'] ;//獲取本地的文件大小  
  20. $extendname=extend($filename);//獲取文件擴展名  
  21. if($c_filesize>200000000000)die("文件太大");//限制上傳文件大小, 單位字節 
  22.  
  23. //if($extendname!="jpg")die("只允許上傳jpg格式的圖片");//限制上傳文件格式,去掉語句開頭的兩斜杠生效 
  24.  
  25. if(!file_exists($dir));//檢查目錄文件夾是否存在,不存在則建立新文件夾  
  26. {  
  27. $v=split ('[/.-]'$dir);  
  28. for ( $i=0 ; $i <count($v) ; $i++)  
  29. {$dirname=$dirname.$v[$i];  
  30. if(!file_exists($dirname))mkdir($dirname);  
  31. $dirname=$dirname."/";}  
  32. //目錄創建完畢  
  33. ?>
  34. <?  
  35. $dest=$dirname.date("ymdhis", time()).rand(100000,999999).".".$extendname//設置文件名為日期加上從100000到999999的隨機數和擴展名  
  36. if(file_exists($dest))die("該文件已經存在");  
  37. if(move_uploaded_file($file['tmp_name'],$dest)) //調用文件上傳函數  
  38. {$s_filesize=filesize($dest);//獲取服務器端的文件大小  
  39. echo "文件上傳成功,<a href=".$dest.">查看文件地址</a>";  
  40. echo "<br>本地文件名:".$filename;  
  41. echo "<br>遠端文件名:".$dest;  
  42. echo "<br>大 小:".ceil($s_filesize/1024)." kb";  
  43. echo "<br>擴展名:".$extendname;  
  44. echo "<br>大 小:".$c_filesize." byte";}  
  45. else  
  46. {echo "還未進行文件上傳";}  
  47. ?> 

總結了文件上傳的錯誤代碼:

upload_err_ok沒有錯誤。

upload_err_ini_size的上傳的文件超過最高價值存在中指定的文件。

upload_err_form_size的上傳的文件超過最高價值所指定的max_file_size隱藏的部件。

upload_err_partial的文件上傳被取消了,只有部分的文件被上傳。

upload_err_nofile沒有文件被上傳.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 全南县| 高台县| 抚松县| 博客| 报价| 乐亭县| 同仁县| 济南市| 北辰区| 土默特左旗| 宣城市| 旬阳县| 嘉定区| 寿光市| 北碚区| 兴安县| 聊城市| 新郑市| 建昌县| 太谷县| 阿拉善右旗| 娄底市| 宝山区| 宁陵县| 金秀| 肥东县| 巴塘县| 利辛县| 红安县| 横山县| 通州区| 长岭县| 佛学| 方正县| 民丰县| 正阳县| 罗甸县| 临邑县| 乡城县| 房山区| 保亭|