>  기사  >  백엔드 개발  >  이미지를 업로드하는 PHP 코드

이미지를 업로드하는 PHP 코드

WBOY
WBOY원래의
2016-07-25 09:04:11971검색
  1. /*

  2. * 매개변수 설명
  3. * $max_file_size: 업로드 파일 크기 제한, 단위 BYTE
  4. * $destination_folder: 업로드 파일 경로
  5. * $watermark: 워터마크 첨부 여부(1은 워터마크 추가, 나머지는 워터마크 추가 안함);
  6. * http://bbs.it-home. org
  7. * 사용 지침:
  8. * 1. GD 라이브러리를 사용해야 하므로 PHP.INI 파일의 "extension=php_gd2.dll" 줄 앞에 있는 ; 기호를 제거하세요. * 2. 확장명 변경_dir = php_gd2.dll이 있는 디렉토리로 변경;
  9. */
  10. // 파일 형식 목록 업로드
  11. $uptypes = 배열(
  12. 'image/jpg',
  13. '이미지/png',
  14. '이미지/jpeg',
  15. '이미지/pjpeg',
  16. '이미지/gif',
  17. '이미지/bmp',
  18. '이미지/ x-png'
  19. ) ;
  20. $max_file_size = 20000000; //업로드 파일 크기 제한, 단위 BYTE
  21. $destination_folder = 'uploadimg/'; //업로드 파일 경로
  22. $watermark = 1; //워터마크 첨부 여부(1은 워터마크 추가, 나머지는 워터마크 추가 안함);
  23. $watertype = 1; //워터마크 유형(1은 텍스트, 2는 그림)
  24. $waterposition = 1; /워터마크 위치(1은 왼쪽 하단, 2는 그림)는 오른쪽 하단, 3은 왼쪽 상단, 4는 오른쪽 상단, 5는 중앙);
  25. $waterstring = "http ://bbs.it-home.org/"; //워터마크 문자열
  26. $waterimg = "xplore.gif"; //워터마크 이미지
  27. $imgpreview = 1; //미리보기 이미지 생성 여부( 1개는 생성되고 나머지는 생성되지 않음);
  28. $imgpreviewsize = 1 / 2; //썸네일 이미지 비율
  29. ?>
  30. < title>Zwell 이미지 업로더
  31. < body>
  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. }< ;/p>
  46. if (!in_arrar($type, $uptypes)) { //파일 유형 판단

  47. echo '업로드된 파일 유형이 일치하지 않습니다.' $type;
  48. 종료 ();
  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"] . " ;
  55. } else {
  56. move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
  57. echo "저장됨 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) 🎜> echo "같은 이름의 파일이 이미 존재합니다.";
  63. exit ();
  64. }

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

  66. echo "파일 이동 오류";
  67. 종료 ();
  68. }
  69. $pinfo = pathinfo($destination);

  70. $fname = $pinfo[basename];
  71. echo " 업로드되었습니다< /font> ;
    파일 이름: " . $destination_folder . $fname . "
    ";
  72. echo " 너비: " . $image_size[0 ];
  73. echo "length:" . $image_size[1];
  74. echo "
    크기:" . $file["size"] . " 바이트";

  75. < p> if ($watermark == 1) {
  76. $iinfo = getimagesize($destination, $iinfo);
  77. $nimage = imagecreatetruecolor($image_size[0], $image_size[1]);
  78. $white = imagecolorallocate($nimage, 255, 255, 255);
  79. $black = imagecolorallocate($nimage, 0, 0, 0);
  80. $red = imagecolorallocate($nimage, 255, 0, 0) ;
  81. imagefill($nimage, 0, 0, $white);
  82. 스위치($iinfo[2]) {
  83. 사례 1 :
  84. $simage = imagecreatefromgif($destination);
  85. break;
  86. 사례 2:
  87. $simage = imagecreatefromjpeg($destination);
  88. break;
  89. 사례 3:
  90. $simage = imagecreatefrompng($destination);
  91. break; > 사례 6:
  92. $simage = imagecreatefromwbmp($destination);
  93. break;
  94. 기본값:
  95. die("지원되지 않는 파일 형식");
  96. 종료;
  97. }
  98. imagecopy($nimage, $simage, 0, 0, 0, 0, $image_size[0], $image_size[1]);

  99. imagefilled직사각형($nimage, 1, $image_size [1] - 15, 80, $image_size[1], $white);

  100. 스위치($watertype) {

  101. 사례 1: //워터마크 문자열 추가 ;
  102. imagestring($nimage, 2, 3, $image_size[1] - 15, $waterstring, $black);

  103. break;
  104. 사례 2: / /워터마크 이미지
  105. $simage1 = imagecreatefromgif("xplore.gif");

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

  110. 스위치($iinfo[2]) {

  111. 사례 1 :
  112. //imagegif($nimage, $ Destination);

  113. imagejpeg($nimage, $destination);

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

  126. //원본 업로드 파일 덮어쓰기

  127. imagedestroy($nimage) ;
  128. imagedestroy($ simage);
  129. }

  130. if ($imgpreview == 1) {

  131. echo "
    이미지 미리보기: echo "사진 미리보기:r파일 이름:";
  132. }
  133. }
  134. }
  135. ?>
코드 복사
관심 있는 기사:

PHP 다중 이미지 업로드의 간단한 예(사진 및 텍스트) PHP 파일(move_uploaded_file)을 업로드할 때 발생하는 문제 PHP 공통 형식 다중 파일 업로드 코드 PHP 파일 업로드 원리 이해 PHP에서 간단한 파일 업로드 예시 PHP가 업로드된 파일의 파일 형식을 결정하는 여러 가지 방법 파일 업로드 및 다운로드를 위한 PHP 소스 코드 유용한 PHP 파일 업로드 처리 클래스 여러 파일 업로드를 위한 PHP 코드 PHP에서 여러 파일을 업로드하는 세 가지 방법 PHP 이미지 업로드 기능 구현


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.