PHP图片上传代码一例

分享一个php图片上传代码,如下:

 
  1. $uptypes=array('image/jpg'//上传文件类型列表  
  2. 'image/jpeg',  
  3. 'image/png',  
  4. 'image/pjpeg',  
  5. 'image/gif',  
  6. 'image/bmp',  
  7. 'application/x-shockwave-flash',  
  8. 'image/x-png');   
  9. $max_file_size=5000000; //上传文件大小限制, 单位BYTE  
  10. $destination_folder="upload/"//上传文件路径  
  11. $watermark=0; //是否附加水印(1为加水印,其他为不加水印);  
  12. $watertype=1; //水印类型(1为文字,2为图片)  
  13. $waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);  
  14. $waterstring="newphp.site.cz"//水印字符串  
  15. $waterimg="xplore.gif"//水印图片  
  16. $imgpreview=1; //是否生成预览图(1为生成,其他为不生成);  
  17. $imgpreviewsize=1/2; //缩略图比例  
  18. ?>  
  19.   
  20.   
  21. PHP图片上传 - www.jbxue.com  
  22. "Content-Type" content="text/html; charset=gb2312">  
  23. "text/css">body,td{font-family:tahoma,verdana,arial;font-size:11px;line-height:15px;background-color:white;color:#666666;margin-left:20px;}   
  24. strong{font-size:12px;}  
  25. a:link{color:#0066CC;}  
  26. a:hover{color:#FF6600;}  
  27. a:visited{color:#003366;}  
  28. a:active{color:#9DCC00;}  
  29. table.itable{}  
  30. td.irows{height:20px;background:url("index.php?i=dots") repeat-x bottom}  
  31.   
  32.   
  33. "multipart/form-data" method="post" name="upform">  
  34. 上传文件: 


      
  35. "upfile" type="file" style="width:200;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17">  
  36. "submit" value="上传" style="width:30;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17">


      
  37. 允许上传的文件类型为:jpg|jpeg|png|pjpeg|gif|bmp|x-png|swf 

      
  38. "index.php">返回  
  39.   
  40. if ($_SERVER['REQUEST_METHOD'] == 'POST')  
  41. {  
  42. if (!is_uploaded_file($_FILES["upfile"][tmp_name]))  
  43. //是否存在文件  
  44. {   
  45. echo "文件不存在!";  
  46. exit;  
  47. }  
  48.   
  49. $file = $_FILES["upfile"];  
  50. if($max_file_size < $file["size"])  
  51. //检查文件大小  
  52. {  
  53. echo "文件太大!";  
  54. exit;  
  55. }  
  56.   
  57. if(!in_array($file["type"], $uptypes))  
  58. //检查文件类型  
  59. // www.jbxue.com  
  60. echo "只能上传图像文件或Flash!";  
  61. exit;   
  62. }  
  63.   
  64. if(!file_exists($destination_folder))  
  65. mkdir($destination_folder);  
  66.   
  67. $filename=$file["tmp_name"];  
  68. $image_size = getimagesize($filename);   
  69. $pinfo=pathinfo($file["name"]);  
  70. $ftype=$pinfo[extension];  
  71. $destination = $destination_folder.time().".".$ftype;  
  72. if (file_exists($destination) && $overwrite != true)  
  73.   
  74. {  
  75. echo "同名文件已经存在了!";  
  76. exit;  
  77. }  
  78.   
  79. if(!move_uploaded_file ($filename$destination))  
  80. {  
  81. echo "移动文件出错!";  
  82. exit;  
  83. }  
  84.   
  85. $pinfo=pathinfo($destination);  
  86. $fname=$pinfo[basename];  
  87. echo 已经成功上传
    文件名: "
    .$destination_folder.$fname."
    "
    ;  
  88. echo " 宽度:".$image_size[0];  
  89. echo " 长度:".$image_size[1];  
  90. if($watermark==1)  
  91. {  
  92. $iinfo=getimagesize($destination,$iinfo);  
  93. $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);  
  94. $white=imagecolorallocate($nimage,255,255,255);  
  95. $black=imagecolorallocate($nimage,0,0,0);  
  96. $red=imagecolorallocate($nimage,255,0,0);  
  97. imagefill($nimage,0,0,$white);  
  98.   
  99. switch ($iinfo[2])  
  100. {  
  101. case 1:  
  102. $simage =imagecreatefromgif($destination);  
  103. break;  
  104. case 2:  
  105. $simage =imagecreatefromjpeg($destination);  
  106. break;  
  107. case 3:  
  108. $simage =imagecreatefrompng($destination);  
  109. break;  
  110. case 6:  
  111. $simage =imagecreatefromwbmp($destination);  
  112. break;  
  113. default:  
  114. die("不能上传此类型文件!");  
  115. exit;  
  116. }  
  117.   
  118. imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);  
  119. imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);  
  120.   
  121. switch($watertype)  
  122. {  
  123. case 1: //加水印字符串  
  124. imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);  
  125. break;  
  126. case 2: //加水印图片  
  127. $simage1 =imagecreatefromgif("xplore.gif");  
  128. imagecopy($nimage,$simage1,0,0,0,0,85,15);  
  129. imagedestroy($simage1);  
  130. break;  
  131. //编辑: www.jbxue.com  
  132. switch ($iinfo[2])  
  133. {  
  134. case 1:  
  135. //imagegif($nimage, $destination);  
  136.   
  137. imagejpeg($nimage$destination);  
  138. break;  
  139. case 2:  
  140. imagejpeg($nimage$destination);  
  141. break;  
  142. case 3:  
  143. imagepng($nimage$destination);  
  144. break;  
  145. case 6:  
  146. imagewbmp($nimage$destination);  
  147. //imagejpeg($nimage, $destination);  
  148. break;  
  149. }  
  150.   
  151. //覆盖原上传文件  
  152. imagedestroy($nimage);  
  153. imagedestroy($simage);  
  154. }  
  155.   
  156. if($imgpreview==1)  
  157. {  
  158. echo "
    图片预览:
    "
    ;  
  159. echo "".$destination."/" target='_blank'>".$destination."/" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);  
  160. echo " alt=/"图片预览:/r文件名:".$destination."/r上传时间:/" border='0'>";  
  161. }  
  162. }  
  163. ?>  
  164.   
  165.   
  166.  

你可能感兴趣的:(php)