Home >Backend Development >PHP Tutorial >PHP code to upload files and add text and image watermarks

PHP code to upload files and add text and image watermarks

WBOY
WBOYOriginal
2016-07-25 09:10:221195browse
  1. /***************************************

  2. Parameter description:
  3. $max_file_size: Upload file size limit, unit BYTE
  4. $destination_folder: Upload file path
  5. $watermark: Whether to attach a watermark (1 means adding watermark, others means not adding watermark);

  6. Instructions for use:

  7. 1. Change the PHP.INI file Remove the ; sign in front of the line "extension=php_gd2.dll" because we need to use the GD library;
  8. 2. Change extension_dir = to the directory where your php_gd2.dll is located;
  9. ************ ********/

  10. //Upload file type list

  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. );< /p>
  20. $max_file_size=2000000; //About 2M, upload file size limit, unit BYTE

  21. $destination_folder="uploadimg/"; //Upload file path
  22. $watermark=1; //Whether to attach a watermark (1 is watermarked, others are not watermarked);
  23. $watertype=1; //Watermark type (1 is text, 2 is picture)
  24. $waterposition=1; //Watermark position (1 is the lower left corner, 2 is Lower right corner, 3 is the upper left corner, 4 is the upper right corner, 5 is the center);
  25. $waterstring="JYS studio"; //Watermark string
  26. $waterimg="xplore.gif";//Watermark image
  27. $imgpreview= 1; //Whether to generate a preview image (1 means generate, others do not generate);
  28. $imgpreviewsize=1/2; //Thumbnail ratio
  29. ?>
  30. Upload file:

  31. The file types allowed to be uploaded are:
  32. < ;/form>
  33. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  34. {
  35. //Does the file exist?
  36. if (!is_uploaded_file($_FILES["upfile"][tmp_name]) )
  37. {
  38. echo "The picture does not exist!";
  39. exit;
  40. }
  41. $file = $_FILES["upfile"];
  42. //Check the file size

  43. if($max_file_size < ; $file["size"])

  44. {
  45. echo "The file is too big! Cannot exceed 2M! ";
  46. exit;
  47. }

  48. //Check the file type

  49. if(!in_array($file["type"], $uptypes))
  50. {
  51. echo "The file type does not match!" .$file["type"];
  52. exit;
  53. }

  54. //If the uploaded folder does not exist, it will be automatically created

  55. if(!file_exists($destination_folder))
  56. {
  57. mkdir ($destination_folder);
  58. }

  59. $filename=$file["tmp_name"]; //The temporary file name automatically generated by the system

  60. $filenamecustom = $file["name"]; / /The file name uploaded by the user
  61. $image_size = getimagesize($filename); //Image size
  62. $pinfo=pathinfo($file["name"]); //The path information of the uploaded file
  63. $ftype=$pinfo[' extension']; //The extension of the uploaded file
  64. //$destination = $destination_folder.time().".".$ftype;//The directory + file name + file type of the uploaded file, the file name is determined by time() Generate
  65. $destination = $destination_folder.$filenamecustom.".".$ftype;//Directory of uploaded file + user file name + file type

  66. //Check whether the file with the same name exists

  67. if (file_exists($destination) && $overwrite != true)
  68. {
  69. echo "The file with the same name already exists";
  70. exit;
  71. }

  72. //Move the file to the specified directory

  73. if( !move_uploaded_file ($filename, $destination))
  74. {
  75. echo "Error moving file";
  76. exit;
  77. }

  78. $pinfo=pathinfo($destination); //Upload to the server The path information of the file

  79. $fname=$pinfo[basename]; //The file name uploaded to the server
  80. // echo " has been successfully uploaded!
    File name: ".$destination_folder.$fname."
    ";

  81. / / echo " Uploaded successfully!
    File name: ".$destination."
    ";

  82. echo " Uploaded successfully!
    File name: ".$destination_folder.$filenamecustom."
    ";
  83. echo " Width:".$image_size[0 ];
  84. echo " length: ".$image_size[1];
  85. echo "
    size: ".$file["size"]." bytes";
  86. if($watermark==1)
  87. {
  88. $iinfo=getimagesize($destination,$iinfo); //Get the image size and type
  89. $nimage=imagecreatetruecolor($image_size[0],$image_size[1]); //Create a true color image and return an image identifier Symbol,
  90. //Represents a black image of size x_size and y_size
  91. $white=imagecolorallocate($nimage,255,255,255); //nimage assigns color
  92. $black=imagecolorallocate($nimage,0,0,0). ;
  93. $red=imagecolorallocate($nimage,255,0,0);
  94. imagefill($nimage,0,0,$white); //The coordinates x, y of the nimage image (the upper left corner of the image is 0, 0) Use color color to perform area filling
  95. // (that is, points with the same color as the x, y point and adjacent points will be filled)
  96. /*
  97. 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5. = PSD, 6 = BMP, 7 = TIFF (intel byte order), 8 = TIFF (motorola byte order),
  98. 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM
  99. */
  100. switch ($iinfo[2])
  101. {
  102. case 1:
  103. $simage =imagecreatefromgif($destination); //The image obtained from the given file name
  104. break;
  105. case 2:
  106. $simage =imagecreatefromjpeg($destination);
  107. break;
  108. case 3:
  109. $simage =imagecreatefrompng($destination);
  110. break;
  111. case 6:
  112. $simage =imagecreatefromwbmp($destination);
  113. break;
  114. default:
  115. die("Unsupported file type"); //Equivalent to exit()
  116. exit;
  117. }
  118. imagecopy($nimage,$simage,0,0,0,0,$image_size[0], $image_size[1]);//Copy simage starting from 0,0, $image_size[0] width, $image_size[1] height
  119. //Copy a part of simage to the position with coordinates 0,0 in nimage
  120. imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);//Draw an upper left corner coordinate of 1 in the nimage image with white color , $image_size[1]-15

  121. //Rectangle with lower right corner coordinates 80, $image_size[1]
  122. switch($watertype)
  123. {
  124. case 1: //Add watermark string
  125. imagestring($nimage,2, 3,$image_size[1]-15,$waterstring,$black);//Draw the waterstring in black to the 3,$image_size[1]-15 coordinates of nimage, and the font is the built-in font 2
  126. break;
  127. case 2 : //Add watermark image
  128. $simage1 =imagecreatefromgif("xplore.gif");
  129. imagecopy($nimage,$simage1,0,0,0,0,85,15);
  130. imagedestroy($simage1); // Release the memory associated with simagel
  131. break;
  132. }
  133. switch ($iinfo[2])
  134. {
  135. case 1:
  136. //imagegif($nimage, $destination);
  137. imagejpeg($nimage, $destination); // Creates a JPEG image with destination as the file name from the nimage image. The nimage parameter is the return value of the imagecreatetruecolor() function.
  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. //Release memory
  151. imagedestroy($nimage);
  152. imagedestroy($simage);
  153. }
  154. if($imgpreview==1)
  155. {
  156. echo "
    Image preview:
    ";
  157. echo "Image preview:r File name: ";
  158. }
  159. }
  160. ?>
Copy code



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn