php base64編碼轉存成圖片檔案
可能基於某種原因(或許是API),圖片的形式是使用base64編碼儲存於資料庫中
有時候會需要轉存成圖片比較方便處理後續,這時候我們必須對base64編碼做一些處理
有時候會需要轉存成圖片比較方便處理後續,這時候我們必須對base64編碼做一些處理
$img = '010.jpg'
// 將圖片轉化成base64
$base64_img = base64EncodeImage($img);
// 將圖片存在uploads資料夾裡面
echo base64_image_content($base64_img,"uploads/");
/* 圖片轉換為base64格式編碼 */
function base64EncodeImage ($image_file)
{
$base64_image = '';
$image_info = getimagesize($image_file);
$image_data = fread(fopen($image_file, 'r'), filesize($image_file));
$base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
return $base64_image;
}
/* base64格式編碼轉換為圖片並儲存對應資料夾 */
function base64_image_content($base64_image_content,$path)
{
//匹配出圖片的格式
if (preg_match('/^(data:\s*image\/(.*);base64,)/', $base64_image_content, $result))
{
if($result[2] == "jpeg")
$result[2]="jpg";
$type = $result[2];
$new_file = $path."/".date('Ymd',time())."/";
if(!file_exists($new_file)){
//檢查是否有該資料夾,如果沒有就建立,並給予最高許可權
mkdir($new_file, 0700);
}
$new_file = $new_file.time().".{$type}";
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
return '/'.$new_file;
}else{
return false;
}
}
else
{
return false;
}
}