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,' / ');