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

首頁 > 語言 > PHP > 正文

php上傳圖片學(xué)習(xí)筆記與心得

2024-09-04 11:44:47
字體:
供稿:網(wǎng)友

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

如果 PHP 的設(shè)置選項(xiàng) register_globals 為 on,則相關(guān)的變量名將也會存在.從 PHP 4.2.0 版本開始,register_globals 的默認(rèn)值被設(shè)為 off.

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

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

客戶端機(jī)器文件的原名稱.

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

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

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

已上傳文件的大小,單位為字節(jié).

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

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

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

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

處理函數(shù):

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

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

說明

bool move_uploaded_file ( string filename, string destination )

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

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

如果目標(biāo)文件已經(jīng)存在,將會被覆蓋.

實(shí)例代碼如下:

  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.

提交頁實(shí)例代碼如下:

  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> 

處理頁實(shí)例代碼如下:

  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上傳圖片簡單實(shí)現(xiàn)實(shí)例代碼如下:

  1. <html>   
  2. <head>   
  3. <title>PHP上傳圖片簡單實(shí)現(xiàn) </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 '上傳的目標(biāo)文件:' .$target_path . '<br/>';  
  12. echo $_SERVER["SCRIPT_FILENAME"] . '<br/>';  
  13. echo $_SERVER["OS"] . '<br/>';  
  14. //測試函數(shù): move_uploaded_file  
  15. //也可以用函數(shù):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. 上面代碼只適用于學(xué)習(xí)使用,如果想使用在現(xiàn)在的服務(wù)器上我們必須如下寫法 
  42. 實(shí)例代碼如下: 
  43. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  44. <?php 
  45. /****************************************************************************** 
  46. 參數(shù)說明: 
  47. $max_file_size  : 上傳文件大小限制, 單位BYTE 
  48. $destination_folder : 上傳文件路徑 
  49. $watermark   : 是否附加水印(1為加水印,其他為不加水印); 
  50. 使用說明: 
  51. 1. 將PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;號去掉,因?yàn)槲覀円玫紾D庫; 
  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;      //是否生成預(yù)覽圖(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 "同名文件已經(jīng)存在了"
  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>已經(jīng)成功上傳</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>圖片預(yù)覽:<br>"
  203.     echo "<img src="".$destination."" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); 
  204.     echo " alt="圖片預(yù)覽:r文件名:".$destination."r上傳時間:">"
  205.     } 
  206. ?> 
  207. </body> 
  208. </html> 

 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 石林| 江华| 宁明县| 马公市| 托克逊县| 千阳县| 奉节县| 唐海县| 和林格尔县| 阿克| 侯马市| 高阳县| 灵璧县| 龙南县| 博客| 西吉县| 永新县| 三穗县| 根河市| 永兴县| 新疆| 北海市| 宣恩县| 赞皇县| 叙永县| 清水河县| 武宣县| 海伦市| 昌邑市| 孝昌县| 星子县| 孝义市| 宣城市| 长宁县| 玉山县| 高州市| 屏山县| 洛宁县| 乃东县| 华容县| 军事|