php如何將圖片檔案轉換為base64編碼格式
PHP對Base64的支援非常好,有內建的base64_encode與base64_decode負責圖片的Base64編碼與解碼。
編碼上,只要將圖片流讀取到,而後使用base64_encode進行編碼即可得到。
/** * 获取图片的Base64编码(不支持url) * @date 2017-02-20 19:41:22 * * @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); // 取得图片的大小,类型等 //echo '<pre class="brush:php;toolbar:false">' . print_r($img_info, true) . '
而解碼就稍微麻煩一點,究其原因在於把圖片編碼成base64字串後,編碼內會加入這些字元 data:image/png;base64,本來是用於base64進行辨識的。但如果直接放到php裡用base64_decode函數解碼會導致最終保存的圖片檔案格式損壞,而解決方法就是先去掉這一串字元:
$base64_string= explode(',', $base64_string); //截取data:image/png;base64, 这个逗号后的字符 $data= base64_decode($base64_string[1]); //对截取后的字符使用base64_decode进行解码 file_put_contents($url, $data); //写入文件并保存
推薦教學:《PHP教程》
以上是php如何將檔案轉換為base64編碼格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!