PHP 저장 Base 64 이미지 base 64decode 의 문제 정리

PHP 는 Base 64 에 대한 지원 이 매우 좋 습 니 다.내 장 된 base 64 가 있 습 니 다.encode 와 base 64decode 는 그림 의 Base 64 인 코딩 과 디 코딩 을 담당 합 니 다.
인 코딩 에 서 는 그림 흐름 을 읽 기만 하면 base 64 를 사용 합 니 다.encode 에서 인 코딩 을 진행 하면 얻 을 수 있 습 니 다.

/**
 *      Base64  (   url) *
 * @param $img_file          *
 * @return string
 */
function imgToBase64($img_file) {
  $img_base64 = '';
  if (file_exists($img_file)) {
    $app_img_file = $img_file; //     
    $img_info = getimagesize($app_img_file); //        ,   
    $fp = fopen($app_img_file, "r"); //         
    if ($fp) {
      $filesize = filesize($app_img_file);
      $content = fread($fp, $filesize);
      $file_content = chunk_split(base64_encode($content)); // base64  
      switch ($img_info[2]) {      //      
        case 1: $img_type = "gif";
          break;
        case 2: $img_type = "jpg";
          break;
        case 3: $img_type = "png";
          break;
      }
      $img_base64 = 'data:image/' . $img_type . ';base64,' . $file_content;//     base64  
    }
    fclose($fp);
  }
  return $img_base64; //     base64
}
//호출 방법

$img_dir = dirname(__FILE__) . '/uploads/img/wwllwedd.jpg';
$img_base64 = imgToBase64($img_dir);
echo '<img src="' . $img_base64 . '">'; //      
echo '<hr>';
echo $img_base64; //  Base64  
디 코딩 은 조금 번 거 롭 습 니 다.그 이 유 는 그림 을 base 64 문자열 로 인 코딩 한 후에 인 코딩 에 이 문자 data:image/png 를 추가 하기 때 문 입 니 다.base 64 는 원래 base 64 를 식별 하 는 데 사용 되 었 다.근 데 그냥 phop 에 넣 으 면 base 64decode 함수 디 코딩 은 최종 저 장 된 그림 파일 형식 을 손상 시 킬 수 있 으 며,해결 방법 은 이 문 자 를 먼저 제거 하 는 것 입 니 다.

//   
preg_match('/^(data:\s*image\/(\w+);base64,)/', $base_info, $result) //         base64   
$type = $result[2];
$extensions = strtolower($type);
if (!in_array($extensions, array('gif', 'jpg', 'png', 'jpeg','bmp'))) {
  json_rtn(0, '          ');
}
$data= base64_decode(str_replace($result[1], '', $base_info));  //         base64_decode    
file_put_contents($pic_path,$data) //       
 
//   
$base64_string= explode(',', $base64_string); //  data:image/png;base64,         
$data= base64_decode($base64_string[1]);  //         base64_decode    
file_put_contents($url, $data); //       
다음은 이번 PHP 저장 Base 64 이미지 base 64decode 의 문제 내용,여러분 의 학습 과 우리 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기