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

首頁 > 語言 > PHP > 正文

php上傳圖片學習筆記與心得

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

我們在php中上傳文件就必須使用#_FILE變量了,這個自動全局變量 $_FILES 從 PHP 4.1.0 版本開始被支持.在這之前,從 4.0.0 版本開始,PHP 支持 $HTTP_POST_FILES 數組.這些數組將包含所有關于您上傳的文件的信息,其中,我們推薦您使用 $_FILES.

如果 PHP 的設置選項 register_globals 為 on,則相關的變量名將也會存在.從 PHP 4.2.0 版本開始,register_globals 的默認值被設為 off.

我們假設文件上傳字段的名稱為 userfile.名稱可隨意命名.

$_FILES['userfile']['name']

客戶端機器文件的原名稱.

$_FILES['userfile']['type']

文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如“image/gif”.

$_FILES['userfile']['size']

已上傳文件的大小,單位為字節.

$_FILES['userfile']['tmp_name']

文件被上傳后在服務端儲存的臨時文件名.

$_FILES['userfile']['error']

和該文件上傳相關的錯誤代碼.['error'] 是在 PHP 4.2.0 版本中增加的.

處理函數:

move_uploaded_file() (PHP 4 >= 4.0.3, PHP 5)

move_uploaded_file -- 將上傳的文件移動到新位置

說明

bool move_uploaded_file ( string filename, string destination )

本函數檢查并確保由 filename 指定的文件是合法的上傳文件(即通過 PHP 的 HTTP POST 上傳機制所上傳的).如果文件合法,則將其移動為由 destination 指定的文件.

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

如果目標文件已經存在,將會被覆蓋.

實例代碼如下:

  1. if(move_uploaded_file($_FILES["magfile"]["tmp_name"], $uploaddir)) 
  2.   { 
  3.     echo "Update OK!"
  4.   } 

也可用copy(PHP 3, PHP 4, PHP 5)copy -- 拷貝文件bool copy ( string source, string dest )將文件從 source 拷貝到 dest.如果成功則返回 TRUE,失敗則返回 FALSE.

提交頁實例代碼如下:

  1. <form action="." method="post" enctype="multipart/form-data" name="UL">   
  2. <!--這里的‘enctype="multipart/form-data" ’是必須的-->   
  3. <input type="file" name="picurl" size="15"   
  4. accept="image/x-png,image/gif,image/jpeg">   
  5. <input type="submit" name="upload" value="上傳">   
  6. </form> 

處理頁實例代碼如下:

  1. if($_FILES['picurl']['size'] > 0){ 
  2.      if(move_uploaded_file ($_FILES['picurl']['tmp_name'], $_FILES['picurl']['name'])){ 
  3.        echo "圖片上傳成功"
  4.      }  
  5.    } 

其它非File類型的表單,可照樣用$_POST['name']來接收.

php上傳圖片簡單實現實例代碼如下:

  1. <html>   
  2. <head>   
  3. <title>PHP上傳圖片簡單實現 </title>   
  4. </head>   
  5. <body>   
  6. <?php   
  7. if($_GET['action'] == 'upfile')   
  8. {   
  9. $target_path = 'temp_'.$_FILES['photo']['name'];   
  10. echo '上傳的臨時文件:' .$_FILES['photo']['tmp_name'] . '<br/>';  
  11. echo '上傳的目標文件:' .$target_path . '<br/>';  
  12. echo $_SERVER["SCRIPT_FILENAME"] . '<br/>';  
  13. echo $_SERVER["OS"] . '<br/>';  
  14. //測試函數: move_uploaded_file  
  15. //也可以用函數:copy  
  16. move_uploaded_file($_FILES['photo']['tmp_name'], $target_path);   
  17. echo "Upload result:";   
  18. if(file_exists($target_path)) {   
  19.  if($_SERVER["OS"]!="Windows_NT"){  
  20.   @chmod($target_path,0604);  
  21.  }  
  22.  echo '<font color="green">Succeed!</font><br /><a href="http://' .$_SERVER["SERVER_NAME"] . "/" .$target_path .'"><img src=' .$target_path .' border="0">';   
  23. else {   
  24.  echo '<font color="red">Failed!</font>';   
  25. }   
  26. exit;   
  27. }   
  28. ?>   
  29. <h1>Registration</h1>   
  30. <form action="upload.php?action=upfile" method="post" name="UForm" enctype="multipart/form-data">   
  31. <fieldset>   
  32. <legend>Your information</legend>   
  33. <ul>   
  34. <li>Your Phot<input type="file" name="photo"></li>   
  35. </ul>   
  36. </fieldset>   
  37. <button type="submit">上傳</button>   
  38. </form>   
  39. </body>   
  40. </html> 
  41. 上面代碼只適用于學習使用,如果想使用在現在的服務器上我們必須如下寫法 
  42. 實例代碼如下: 
  43. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  44. <?php 
  45. /****************************************************************************** 
  46. 參數說明: 
  47. $max_file_size  : 上傳文件大小限制, 單位BYTE 
  48. $destination_folder : 上傳文件路徑 
  49. $watermark   : 是否附加水印(1為加水印,其他為不加水印); 
  50. 使用說明: 
  51. 1. 將PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;號去掉,因為我們要用到GD庫; 
  52. 2. 將extension_dir =改為你的php_gd2.dll所在目錄; 
  53. ******************************************************************************/ 
  54. //上傳文件類型列表 
  55. $uptypes=array
  56.     'image/jpg'
  57.     'image/jpeg'
  58.     'image/png'
  59.     'image/pjpeg'
  60.     'image/gif'
  61.     'image/bmp'
  62.     'image/x-png' 
  63. ); 
  64. $max_file_size=2000000;     //上傳文件大小限制, 單位BYTE 
  65. $destination_folder="uploadimg/"//上傳文件路徑 
  66. $watermark=1;      //是否附加水印(1為加水印,其他為不加水印); 
  67. $watertype=1;      //水印類型(1為文字,2為圖片) 
  68. $waterposition=1;     //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中); 
  69. $waterstring="http://www.111cn.net/";  //水印字符串 
  70. $waterimg="xplore.gif";    //水印圖片 
  71. $imgpreview=1;      //是否生成預覽圖(1為生成,其他為不生成); 
  72. $imgpreviewsize=1/2;    //縮略圖比例 
  73. ?> 
  74. <html> 
  75. <head> 
  76. <title>ZwelL圖片上傳程序</title> 
  77. <style type="text/css"
  78. <!-- 
  79. body 
  80.      font-size: 9pt; 
  81. input 
  82.      background-color: #66CCFF; 
  83.      border: 1px inset #CCCCCC; 
  84. --> 
  85. </style> 
  86. </head> 
  87. <body> 
  88. <form enctype="multipart/form-data" method="post" name="upform"
  89.   上傳文件: 
  90.   <input name="upfile" type="file"
  91.   <input type="submit" value="上傳"><br> 
  92.   允許上傳的文件類型為:<?=implode(', ',$uptypes)?> 
  93. </form> 
  94. <?php 
  95. if ($_SERVER['REQUEST_METHOD'] == 'POST'
  96.     if (!is_uploaded_file($_FILES["upfile"][tmp_name])) 
  97.     //是否存在文件 
  98.     { 
  99.          echo "圖片不存在!"
  100.          exit
  101.     } 
  102.     $file = $_FILES["upfile"]; 
  103.     if($max_file_size < $file["size"]) 
  104.     //檢查文件大小 
  105.     { 
  106.         echo "文件太大!"
  107.         exit
  108.     } 
  109.     if(!in_array($file["type"], $uptypes)) 
  110.     //檢查文件類型 
  111.     { 
  112.         echo "文件類型不符!".$file["type"]; 
  113.         exit
  114.     } 
  115.     if(!file_exists($destination_folder)) 
  116.     { 
  117.         mkdir($destination_folder); 
  118.     } 
  119.     $filename=$file["tmp_name"]; 
  120.     $image_size = getimagesize($filename); 
  121.     $pinfo=pathinfo($file["name"]); 
  122.     $ftype=$pinfo['extension']; 
  123.     $destination = $destination_folder.time().".".$ftype
  124.     if (file_exists($destination) && $overwrite != true) 
  125.     { 
  126.         echo "同名文件已經存在了"
  127.         exit
  128.     } 
  129.     if(!move_uploaded_file ($filename$destination)) 
  130.     { 
  131.         echo "移動文件出錯"
  132.         exit
  133.     } 
  134.     $pinfo=pathinfo($destination); 
  135.     $fname=$pinfo[basename]; 
  136.     echo " <font color=red>已經成功上傳</font><br>文件名:  <font color=blue>".$destination_folder.$fname."</font><br>"
  137.     echo " 寬度:".$image_size[0]; 
  138.     echo " 長度:".$image_size[1]; 
  139.     echo "<br> 大小:".$file["size"]." bytes"
  140.     if($watermark==1) 
  141.     { 
  142.         $iinfo=getimagesize($destination,$iinfo); 
  143.         $nimage=imagecreatetruecolor($image_size[0],$image_size[1]); 
  144.         $white=imagecolorallocate($nimage,255,255,255); 
  145.         $black=imagecolorallocate($nimage,0,0,0); 
  146.         $red=imagecolorallocate($nimage,255,0,0); 
  147.         imagefill($nimage,0,0,$white); 
  148.         switch ($iinfo[2]) 
  149.         { 
  150.             case 1: 
  151.             $simage =imagecreatefromgif($destination); 
  152.             break
  153.             case 2: 
  154.             $simage =imagecreatefromjpeg($destination); 
  155.             break
  156.             case 3: 
  157.             $simage =imagecreatefrompng($destination); 
  158.             break
  159.             case 6: 
  160.             $simage =imagecreatefromwbmp($destination); 
  161.             break
  162.             default
  163.             die("不支持的文件類型"); 
  164.             exit
  165.         } 
  166.         imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); 
  167.         imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); 
  168.         switch($watertype
  169.         { 
  170.             case 1:   //加水印字符串 
  171.             imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black); 
  172.             break
  173.             case 2:   //加水印圖片 
  174.             $simage1 =imagecreatefromgif("xplore.gif"); 
  175.             imagecopy($nimage,$simage1,0,0,0,0,85,15); 
  176.             imagedestroy($simage1); 
  177.             break
  178.         } 
  179.         switch ($iinfo[2]) 
  180.         { 
  181.             case 1: 
  182.             //imagegif($nimage, $destination); 
  183.             imagejpeg($nimage$destination); 
  184.             break
  185.             case 2: 
  186.             imagejpeg($nimage$destination); 
  187.             break
  188.             case 3: 
  189.             imagepng($nimage$destination); 
  190.             break
  191.             case 6: 
  192.             imagewbmp($nimage$destination); 
  193.             //imagejpeg($nimage, $destination); 
  194.             break
  195.         } 
  196.         //覆蓋原上傳文件 
  197.         imagedestroy($nimage); 
  198.         imagedestroy($simage); 
  199.     } 
  200.     if($imgpreview==1) 
  201.     { 
  202.     echo "<br>圖片預覽:<br>"
  203.     echo "<img src="".$destination."" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); 
  204.     echo " alt="圖片預覽:r文件名:".$destination."r上傳時間:">"
  205.     } 
  206. ?> 
  207. </body> 
  208. </html> 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色视频www在线播放国产成人| 日韩一区二区欧美| 日韩高清免费观看| 欧美一级高清免费播放| 国产精品自在线| 日韩欧美在线视频观看| 国产精品欧美风情| 亚洲天堂av综合网| 97久久精品在线| 国产亚洲美女久久| 国产精品美女在线观看| 亚洲自拍偷拍色片视频| 91国语精品自产拍在线观看性色| 九九热r在线视频精品| 97精品国产97久久久久久| 美女av一区二区| 亚洲第一区中文99精品| 欧美黄色成人网| 青青草精品毛片| 日本一区二区在线播放| 成人中文字幕在线观看| 最近2019年好看中文字幕视频| 98精品国产高清在线xxxx天堂| 亚洲精品国产精品自产a区红杏吧| 色综合久综合久久综合久鬼88| 国产成人综合精品在线| 久久亚洲精品一区二区| 两个人的视频www国产精品| 欧美伊久线香蕉线新在线| 欧美在线视频免费播放| 欧美性猛交99久久久久99按摩| 国产欧美va欧美va香蕉在线| 九九热这里只有在线精品视| 亚洲天堂av在线免费| 久久久久99精品久久久久| 精品久久中文字幕久久av| 欧美日韩国内自拍| 亚洲人成毛片在线播放| 久久中文字幕国产| 亚洲第一精品电影| 亚洲欧美日韩高清| 亚洲最大成人免费视频| 成人动漫网站在线观看| 日韩av影视在线| 国产精品海角社区在线观看| 97精品伊人久久久大香线蕉| 久久成人国产精品| 欧美中文在线观看国产| 国产精品久久久久久久久久东京| 亚洲国产小视频在线观看| 国产精品久久久久久久久影视| 午夜精品福利视频| 日韩成人av一区| 国产欧美一区二区白浆黑人| www.久久撸.com| 久久99国产综合精品女同| 欧美成人精品在线| 日韩中文第一页| 欧美做爰性生交视频| 国产视频亚洲视频| 欧美在线中文字幕| 亚洲人成五月天| 日韩欧美亚洲范冰冰与中字| 成人国产精品久久久| 久久久久女教师免费一区| 91精品国产综合久久香蕉最新版| 亚洲国产另类 国产精品国产免费| 日韩av大片在线| 日韩av在线免费看| 亚洲天堂男人天堂| 久久这里只有精品99| 91九色视频导航| 国产午夜精品全部视频播放| 亚洲第一视频网站| 亚洲精品国产综合区久久久久久久| 亚洲品质视频自拍网| 日本三级久久久| 亚洲高清久久久久久| 国产精品久久久久91| 日韩av中文在线| 成人av在线天堂| 欧美在线性视频| 亚洲日本欧美日韩高观看| 91精品视频网站| 日韩欧美在线视频观看| 国产精品露脸av在线| 人体精品一二三区| 91免费视频网站| 91福利视频网| 亚洲xxxx3d| 欧美电影免费播放| 亚洲最大福利视频网| 国产精品免费福利| 亚洲国产精品中文| 欧美日韩亚洲一区二区三区| 久久亚洲国产成人| 国产精品情侣自拍| 日韩网站免费观看| 欧美激情精品在线| 精品久久久香蕉免费精品视频| 亚洲free性xxxx护士白浆| 色婷婷成人综合| 国产美女被下药99| 欧美极品欧美精品欧美视频| 日韩精品视频在线免费观看| 国产美女高潮久久白浆| 丝袜美腿精品国产二区| 宅男66日本亚洲欧美视频| 亚洲丁香婷深爱综合| 欧美成人激情视频免费观看| 亚洲天堂网站在线观看视频| 欧美日韩xxxxx| 国产精品18久久久久久麻辣| 亚洲香蕉av在线一区二区三区| 欧美激情国产精品| 日韩在线免费高清视频| 亚洲已满18点击进入在线看片| 亚洲免费影视第一页| 亚洲国产成人精品久久久国产成人一区| 午夜精品美女自拍福到在线| 久久久亚洲福利精品午夜| 懂色av影视一区二区三区| 中文字幕日韩在线视频| 成人国产在线激情| 欧美大片在线影院| 在线观看91久久久久久| 操人视频在线观看欧美| 成人网在线视频| 97国产精品免费视频| 久久久爽爽爽美女图片| 81精品国产乱码久久久久久| www.99久久热国产日韩欧美.com| 亚洲三级免费看| 国产欧美日韩中文| 欧美电影免费观看大全| 国产精品美女呻吟| 国产精品久久久久久av| 国产精品偷伦一区二区| 精品久久中文字幕久久av| 日韩在线免费高清视频| 日本精品中文字幕| 亚洲男人天天操| 久久视频在线播放| 亚洲欧美第一页| 亚洲国产精品va| 欧美激情一区二区三区成人| 国产精品美乳在线观看| 亚洲精品成人久久电影| 姬川优奈aav一区二区| 中文精品99久久国产香蕉| 亚洲色图五月天| 国产欧美欧洲在线观看| 国产精品扒开腿爽爽爽视频| 亚洲国产一区二区三区在线观看| 国产有码在线一区二区视频| 久久久国产精品一区| 日韩在线视频线视频免费网站| 中文字幕欧美视频在线| 国产精品久久不能| 热99精品只有里视频精品| 91免费在线视频| 亚洲精选一区二区| 久久久999国产| 狠狠色香婷婷久久亚洲精品|