您可能感兴趣的文章:php 多图片上传的简单例子(图文)php文件上传时遇到的一个问题(move_uploaded_file)php普通表单多文件上传的代码了解PHP文件上传的原理">
当前位置:Gxlcms > PHP教程 > php上传图片的代码

php上传图片的代码

时间:2021-07-01 10:21:17 帮助过:22人阅读

  1. /*

  2. * 参数说明
  3. * $max_file_size : 上传文件大小限制, 单位BYTE
  4. * $destination_folder : 上传文件路径
  5. * $watermark : 是否附加水印(1为加水印,其他为不加水印);
  6. * http://bbs.it-home.org
  7. * 使用说明:
  8. * 1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
  9. * 2. 将extension_dir =改为你的php_gd2.dll所在目录;
  10. */
  11. // 上传文件类型列表
  12. $uptypes = array (
  13. 'image/jpg',
  14. 'image/png',
  15. 'image/jpeg',
  16. 'image/pjpeg',
  17. 'image/gif',
  18. 'image/bmp',
  19. 'image/x-png'
  20. );
  21. $max_file_size = 20000000; //上传文件大小限制,单位BYTE
  22. $destination_folder = 'uploadimg/'; //上传文件路径
  23. $watermark = 1; //是否附加水印(1为加水印,其他为不加水印);
  24. $watertype = 1; //水印类型(1为文字,2为图片)
  25. $waterposition = 1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
  26. $waterstring = "http://bbs.it-home.org/"; //水印字符串
  27. $waterimg = "xplore.gif"; //水印图片
  28. $imgpreview = 1; //是否生成预览图(1为生成,其他为不生成);
  29. $imgpreviewsize = 1 / 2; //缩略图比例
  30. ?>
  31. ZwelL图片上传程序
  32. if ($_SERVER['REQUEST_METHOD'] == 'POST') {

  33. //判断是否有上传文件

  34. if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {

  35. $upfile = $_FILES['upfile'];
  36. print_r($_FILES['upfile']);
  37. $name = $upfilep['name']; //文件名
  38. $type = $upfile['type']; //文件类型
  39. $size = $upfile['size']; //文件大小
  40. $tmp_name = $upfile['tmp_name']; //临时文件
  41. $error = $upfile['error']; //出错原因

  42. if ($max_file_size < $size) { //判断文件的大小

  43. echo '上传文件太大';
  44. exit ();
  45. }

  46. if (!in_arrar($type, $uptypes)) { //判断文件的类型

  47. echo '上传文件类型不符' . $type;
  48. exit ();
  49. }

  50. if (!file_exists($destination_folder)) {

  51. mkdir($destination_folder);
  52. }

  53. if (file_exists("upload/" . $_FILES["file"]["name"])) {

  54. echo $_FILES["file"]["name"] . " already exists. ";
  55. } else {
  56. move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
  57. echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  58. }

  59. $pinfo = pathinfo($name);

  60. $ftype = $pinfo['extension'];
  61. $destination = $destination_folder . time() . "." . $ftype;
  62. if (file_exists($destination) && $overwrite != true) {
  63. echo "同名的文件已经存在了";
  64. exit ();
  65. }

  66. if (!move_uploaded_file($tmp_name, $destination)) {

  67. echo "移动文件出错";
  68. exit ();
  69. }

  70. $pinfo = pathinfo($destination);

  71. $fname = $pinfo[basename];
  72. echo " 已经成功上传
    文件名: " . $destination_folder . $fname . "
    ";
  73. echo " 宽度:" . $image_size[0];
  74. echo " 长度:" . $image_size[1];
  75. echo "
    大小:" . $file["size"] . " bytes";

  76. if ($watermark == 1) {

  77. $iinfo = getimagesize($destination, $iinfo);
  78. $nimage = imagecreatetruecolor($image_size[0], $image_size[1]);
  79. $white = imagecolorallocate($nimage, 255, 255, 255);
  80. $black = imagecolorallocate($nimage, 0, 0, 0);
  81. $red = imagecolorallocate($nimage, 255, 0, 0);
  82. imagefill($nimage, 0, 0, $white);
  83. switch ($iinfo[2]) {
  84. case 1 :
  85. $simage = imagecreatefromgif($destination);
  86. break;
  87. case 2 :
  88. $simage = imagecreatefromjpeg($destination);
  89. break;
  90. case 3 :
  91. $simage = imagecreatefrompng($destination);
  92. break;
  93. case 6 :
  94. $simage = imagecreatefromwbmp($destination);
  95. break;
  96. default :
  97. die("不支持的文件类型");
  98. exit;
  99. }

  100. imagecopy($nimage, $simage, 0, 0, 0, 0, $image_size[0], $image_size[1]);

  101. imagefilledrectangle($nimage, 1, $image_size[1] - 15, 80, $image_size[1], $white);

  102. switch ($watertype) {

  103. case 1 : //加水印字符串

  104. imagestring($nimage, 2, 3, $image_size[1] - 15, $waterstring, $black);

  105. break;
  106. case 2 : //加水印图片

  107. $simage1 = imagecreatefromgif("xplore.gif");

  108. imagecopy($nimage, $simage1, 0, 0, 0, 0, 85, 15);
  109. imagedestroy($simage1);
  110. break;
  111. }

  112. switch ($iinfo[2]) {

  113. case 1 :
  114. //imagegif($nimage, $destination);

  115. imagejpeg($nimage, $destination);

  116. break;
  117. case 2 :
  118. imagejpeg($nimage, $destination);
  119. break;
  120. case 3 :
  121. imagepng($nimage, $destination);
  122. break;
  123. case 6 :
  124. imagewbmp($nimage, $destination);
  125. //imagejpeg($nimage, $destination);
  126. break;
  127. }

  128. //覆盖原上传文件

  129. imagedestroy($nimage);
  130. imagedestroy($simage);
  131. }

  132. if ($imgpreview == 1) {

  133. echo "
    图片预览:
    ";
  134. echo "\"图片预览:\r文件名:"";
  135. }
  136. }
  137. }
  138. ?>

您可能感兴趣的文章: php 多图片上传的简单例子(图文) php文件上传时遇到的一个问题(move_uploaded_file) php普通表单多文件上传的代码 了解PHP文件上传的原理 php简单文件上传的例子 php判断上传文件的文件类型的几种方法 一个php上传下载文件的源码 一个好用的php文件上传处理类 php上传多个文件的代码 php多文件上传的三种方法 php上传图片功能的实现

人气教程排行