php上傳檔案並加入文字與圖片浮水印的程式碼

WBOY
發布: 2016-07-25 09:10:22
原創
1158 人瀏覽過
  1. /*************************************

  2. 參數說明:
  3. $max_file_size : 上傳檔案大小限制, 單位BYTE
  4. $destination_folder : 上傳檔案路徑
  5. $watermark : 是否附加浮水印(1為加水印,其他為不加水印);
  6. 使用說明:

  7. 1. 將PHP.INI檔案裡面的"extension=php_gd2.dll"一行前面的;號碼去掉,因為我們要用到GD函式庫;
  8. 2. 將extension_dir =改為你的php_gd2.dll所在目錄;
  9. *******************/
  10. //上傳檔案類型列表

  11. $uptypes=array(
  12. 'image/jpg',
  13. 'image/jpeg',
  14. 'image/png',
  15. 'image/pjpeg',
  16. 'image /gif',
  17. 'image/bmp',
  18. 'image/x-png'
  19. );
  20. $max_file_size=2000000; //大約2M,上傳檔案大小限制, 單位BYTE

  21. $destination_folder="uploadimg/"; //上傳檔案路徑
  22. $watermark=1; //是否附加水印(1為加水印,其他為不加浮水印);
  23. $watertype=1; //浮水印型別(1為文字,2為圖片)
  24. $waterposition=1; //浮水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中);
  25. $waterstring="JYS studio"; //水印字串
  26. $waterimg="xplore.gif";//水印圖片
  27. $imgpreview=1; //是否產生預覽圖(1為生成,其他為不生成);
  28. $imgpreviewsize=1/2; //縮圖比例
  29. ?>
  30. ZwelL圖片上傳程式
  31. 上傳檔案:

  32. 允許上傳的檔案類型為:=implode(', ',$uptypes)?>
  33. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  34. {
  35. //是否存在檔案
  36. if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
  37. {
  38. echo "圖片不存在!";
  39. exit;
  40. }
  41. $file = $_FILES["upfile"];
  42. //檢查檔案大小
  43. if($max_file_size {

  44. echo "文件太大!不能超過2M! ";
  45. exit;
  46. }
  47. //檢查檔案類型

  48. if(!in_array($file["type"], $uptypes))
  49. {
  50. echo "檔案類型不符!".$file["type"];
  51. exit;
  52. }
  53. //上傳到的資料夾不存在則自動建立

  54. if(!file_exists($destination_folder))
  55. {
  56. mkdir($destination_folder);
  57. }
  58. $filename=$file["tmp_name"]; //系統自動產生的暫存檔案名稱

  59. $filenamecustom = $file["name"]; //使用者上傳的檔案名稱
  60. $image_size = getimagesize($filename); //圖片大小
  61. $ pinfo=pathinfo($file["name"]); //上傳檔案的路徑資訊
  62. $ftype=$pinfo['extension']; //上傳檔案的副檔名
  63. //$destination = $ destination_folder.time().".".$ftype;//上傳檔案的目錄+檔案名稱+檔案類型,檔案名稱由time()產生
  64. $destination = $destination_folder.$filenamecustom.".".$ ftype;//上傳檔案的目錄+使用者檔案名稱+檔案類型
  65. //檢查同名檔案是否存在

  66. if (file_exists($destination) && $overwrite != true)
  67. {
  68. echo "同名檔案已經存在了";
  69. exit;
  70. }
  71. //移動檔案到指定目錄

  72. if(!move_uploaded_file ($uploaded_file ($ filename, $destination))
  73. {
  74. echo "移動檔案出錯";
  75. exit;
  76. }
  77. $pinfo=pathinfo($destination); //上傳到伺服器上的檔案的路徑資訊

  78. $fname=$pinfo[basename]; //上傳到伺服器上的檔案名稱
  79. // echo " 已經成功上傳!
    檔名: ".$destination_folder.$fname."
    ";
  80. // echo " 已經成功上傳!
    檔名: ".$destination."
    ";

  81. echo " 已經成功上傳!
    檔名: ".$destination_folder.$filenamecustom."
    ";
  82. echo " 寬度:".$image_size[0];
  83. echo " 長度:".$image_size[1];
  84. echo "
    大小:".$file["size"]." bytes";
  85. if($watermark==1)
  86. {
  87. $iinfo=getimagesize($destination,$iinfo); //取得圖片大小、類型
  88. $nimage=imagecreatetruecolor($image_size[0],$image_size[1]); //新建一個真彩色圖像,傳回一個圖像標識符,
  89. //代表了一幅大小為x_size 和y_size 的黑色圖像。 $black=imagecolorallocate($nimage,0,0,0);
  90. $red=imagecolorallocate($nimage,255,0,0);
  91. imagefill($nimage,0,0,$white); / /在nimage 影像的座標x,y(影像左上角為0, 0)處以color 顏色執行區域填入
  92. //(即與x, y 點顏色相同且相鄰的點都會被填滿)。 🎜> /*
  93. 1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),
  94. 9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
  95. */
  96. switch ($iinfo[2])
  97. {
  98. case 1:
  99. $simage =imagecreatefromgif($destination); //從給定的檔案名稱取得的圖片
  100. break;
  101. case 2:
  102. $simage =imagecreatefromjpeg ($destination);
  103. break;
  104. case 3:
  105. $simage =imagecreatefrompng($destination);
  106. break;
  107. case 6:
  108. $simage =imagecreatefromwpmp($dede) ;
  109. break;
  110. default:
  111. die("不支援的檔案類型"); //Equivalent to exit()
  112. exit;
  113. }
  114. imagecopy($nimage,$ simage,0,0,0,0,$image_size[0],$image_size[1]);//將simage從0,0開始,$image_size[0]寬、$image_size[1]高
  115. / /的部分拷貝到nimage中座標為0,0的位置上
  116. imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white );//在nimage 圖片中用white顏色畫一個左上角座標為1,$image_size[1]-15

  117. //右下角座標為80,$image_size[1]的矩形
  118. switch($水印字串
  119. {
  120. case 1: //加浮水印字串
  121. imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);//用黑色將waterstring畫到nimage的3,$image_size[1]-15座標處,字體為內建字體2
  122. break;
  123. case 2: //加水印圖片
  124. $simage1 =imagecreatefromgif("xplore. ");
  125. imagecopy($nimage,$simage1,0,0,0,0,85,15);
  126. imagedestroy($simage1); //釋放與simagel 相關的記憶體
  127. break;
  128. }
  129. switch ($iinfo[2])
  130. {
  131. case 1:
  132. //imagegif($nimage, $destination);
  133. imagejpeg($nimage, $destination); //從nimage 映像以destination 為檔案名稱建立一個JPEG 影像。 nimage 參數是 imagecreatetruecolor() 函數的回傳值。
  134. break;
  135. case 2:

  136. imagejpeg($nimage, $destination);
  137. break;
  138. case 3:

  139. imagepng($nimage, $destination);
  140. break;
  141. case 6:

  142. imagewbmp($nimage, $destination);
  143. //imagejpeg($nimage, $destination);
  144. break;
  145. }
  146. //釋放記憶體
  147. imagedestroy($nimage);
  148. imagedestroy($simage);
  149. }
  150. if($imgpreviewif($imgpreview =1)
  151. {
  152. echo "
    圖片預覽:
    ";
  153. echo "php上傳檔案並加入文字與圖片浮水印的程式碼";
  154. }
  155. }
  156. ?>
  157. 複製程式碼



來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板