php 처리 단일 파일,다 중 파일 업로드 코드 공유

7462 단어 php파일 업로드
php 처리  단일 파일,다 중 파일 업로드 인 스 턴 스 코드 를 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다. 
백그라운드 처리 파일 submitform_process.php 

<?php 
/****************************************************************************** 
 
    : 
$max_file_size :         ,   BYTE 
$destination_folder :        
$watermark  :       (1    ,       ); 
 
    : 
1.  PHP.INI     "extension=php_gd2.dll"     ;   ,       GD ; 
2.  extension_dir =    php_gd2.dll    ; 
******************************************************************************/ 
//        
$uptypes=array(
    'image/jpg',
    'image/jpeg',
    'image/png',
    'image/pjpeg',
    'image/gif',
    'image/bmp',
    'image/x-png'
);
 
$max_file_size=2*1024*1024;   //        ,   BYTE 
$destination_folder=get_stylesheet_directory().'/mytest/'; //       
$watermark=1;   //      (1    ,       ); 
$watertype=1;   //    (1   ,2   ) 
$waterposition=1;   //    (1    ,2    ,3    ,4    ,5   ); 
$waterstring="test"; //      
$waterimg="xplore.gif";  //     
$imgpreview=1;   //       (1   ,      ); 
$imgpreviewsize=1/2;  //      



if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
  $fileArray = $_FILES['upfile'];//         ,  :        []
  print_r($fileArray);
  echo "<br/>";
  if (!is_uploaded_file($_FILES["upfile"]['tmp_name'])) 
  //       
  { 
     echo "     !"; 
     exit; 
  } 

  $file = $_FILES["upfile"]; 
  if($max_file_size < $file["size"]) 
  //       
  { 
    echo "    !"; 
    exit; 
  } 
 
  if(!in_array($file["type"], $uptypes)) 
  //       
  { 
    echo "      !".$file["type"]; 
    exit; 
  } 
 
  if(!file_exists($destination_folder)) 
  { 
    mkdir($destination_folder); 
  } 
  $filename=$file["tmp_name"]; 
  $image_size = getimagesize($filename); 
  $pinfo=pathinfo($file["name"]); 
  $ftype=$pinfo['extension']; 
  $destination = $destination_folder.time().".".$ftype; 
  //$destination = $destination_folder.$file["name"]; 
  if (file_exists($destination) && $overwrite != true) 
  { 
    echo "         "; 
    exit; 
  } 
  if(!move_uploaded_file ($filename, $destination)) 
  { 
    echo "      "; 
    exit; 
  } 

  
  $pinfo=pathinfo($destination); 
  $fname=$pinfo[basename]; 
  echo " <font color=red>      </font><br>   : <font color=blue>".$destination_folder.$fname."</font><br>"; 
  echo "   :".$image_size[0]; 
  echo "   :".$image_size[1]; 
  echo "<br>   :".$file["size"]." bytes"; 
 
  
  if($watermark==1) 
  { 
    $iinfo=getimagesize($destination,$iinfo); 
    $nimage=imagecreatetruecolor($image_size[0],$image_size[1]); 
    $white=imagecolorallocate($nimage,255,255,255); 
    $black=imagecolorallocate($nimage,0,0,0); 
    $red=imagecolorallocate($nimage,255,0,0); 
    imagefill($nimage,0,0,$white); 
    switch ($iinfo[2]) 
    { 
      case 1: 
      $simage =imagecreatefromgif($destination); 
      break; 
      case 2: 
      $simage =imagecreatefromjpeg($destination); 
      break; 
      case 3: 
      $simage =imagecreatefrompng($destination); 
      break; 
      case 6: 
      $simage =imagecreatefromwbmp($destination); 
      break; 
      default: 
      die("        "); 
      exit; 
    } 
 
    imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); 
    imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); 
 
    switch($watertype) 
    { 
      case 1:  //       
      imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black); 
      break; 
      case 2:  //      
      $simage1 =imagecreatefromgif("xplore.gif"); 
      imagecopy($nimage,$simage1,0,0,0,0,85,15); 
      imagedestroy($simage1); 
      break; 
    } 
 
    switch ($iinfo[2]) 
    { 
      case 1: 
      //imagegif($nimage, $destination); 
      imagejpeg($nimage, $destination); 
      break; 
      case 2: 
      imagejpeg($nimage, $destination); 
      break; 
      case 3: 
      imagepng($nimage, $destination); 
      break; 
      case 6: 
      imagewbmp($nimage, $destination); 
      //imagejpeg($nimage, $destination); 
      break; 
    } 
 
    //        
    imagedestroy($nimage); 
    imagedestroy($simage); 
  } 
 
  if($imgpreview==1) 
  { 
  echo "<br>    :<br>"; 
  echo "<img src=\"/wp-content/themes/HotNewspro/mytest/".$fname."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); 
  echo " alt=\"    :\r   :".$destination."\r    :\">"; 
  } 
  
} 
?> 
프론트 페이지 

   <form enctype="multipart/form-data" method="post" name="upform"
    action="submit_form_process.php"> 
    <input name="testparas" value="test" type="text">
     <input name="upfile" type="file" > 
     <input type="submit" value="  "><br> 
               :<?=implode(', ',$uptypes)?> 
    </form>  
주 1:다 중 이미지 업로드 와 한 이미지 업로드 의 가장 큰 차이 점 은 input 의 name 속성 입 니 다.처음에 제 name 은 upfile 과 같 았 습 니 다.서버 에서 F ILES 를 읽 을 때 마지막 파일 만 읽 을 수 있 었 습 니 다.서버 에서 FILES 를 읽 을 때 마지막 파일 만 읽 을 수 있 었 기 때 문 입 니 다.서버 에서FILES["file"]는 우리 가 업로드 한 파일 로 여러 파일 을 업로드 할 때 뒤의 값 이 앞의 값 을 덮어 쓰기 때문에 마지막 파일 까지 만 읽 을 수 있 습 니 다.지금 우 리 는 그것 을 upfile[]로 바 꾸 어 서버 에서$를 읽 습 니 다.FILES[file]에서 얻 은 것 은 바로 하나의 배열 이기 때문에 나 는 위 에 널 려 있 는 배열 의 방법 으로 파일 을 올 리 는 정 보 를 얻 을 수 있다. 
   
주 2:프론트 페이지 에 IFrame 을 추가 하여 form 을 이 IFrame 에 제출 할 수도 있 습 니 다.백 스테이지 서비스 리 턴 내용 이 여기에 표 시 됩 니 다. 

  <form enctype="multipart/form-data" method="post" name="upform" tatget="iframefile"
    action="submit_form_process.php"> 
    <input name="testparas" value="test" type="text">
     <input name="upfile" type="file" > 
     <input type="submit" value="  "><br> 
               :<?=implode(', ',$uptypes)?> 
    </form>

    <iframe name="iframefile" > 
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기