base 64フォーマットのピクチャ文字列とピクチャファイルが互いに変換されるコード

1486 ワード

モバイル側で画像をアップロードする場合、通常はbase 64形式の文字列コミットに変換されるので、サーバ側のプログラムを使用してバイナリデータに変換する必要があります.以下のPHPコードは、ピクチャファイルとbase 64形式のピクチャ文字列の相互変換方法を実現するとともに、ピクチャ文字列がピクチャファイルを転送する際のデータ型の問題を保証し、簡単なパッケージを行い、使用時に実際の状況に応じて修正することができる.詳細については、次のコードを参照してください.
class Img
{
	/**
		@param $base64Str  base64          
		@param $path              (           )
	*/
	function base64ToImg($base64Str,$path){
		$arr = explode(',',$base64Str);
		$bin = base64_decode($arr[1]);
		$ext = $this->getImgExt($bin);//       
		if($ext !== false){
			file_put_contents($path . '.' . $ext,$bin);
		}else{
			exit('      ');
		}
	}

	/*
		     base64        
		@param $img_file         
		return      
	*/
	function imgToBase64($img_file){

		$img_info = getimagesize($img_file);
		$img_src = "data:{$img_info['mime']};base64," . base64_encode(file_get_contents($img_file));
		return $img_info;
	}
    /**
		                      false
		@param $bin         
		return      
	*/
	public function getImgExt($bin){

		$bits = array(
			'jpg' => "\xFF\xD8\xFF",
			'gif' => "GIF",
			'png' => "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a",
			'bmp' => 'BM',
		);

		foreach ($bits as $type => $bit) {
			if (substr($bin, 0, strlen($bit)) === $bit) {
				return $type;
			}
		}
		return false;

	}

}

$obj = new Img();

$str = '   base64      ';

$obj->base64ToImg($str,'  /   ');