<?php /** * 将base64字符串创建为图片文件 * @param string $base64 base64原始字符串 * @param string $path 保存文件的目录 * @param string $filename 文件名(不要带格式后缀) * @return array 成功:state 1 filename:返回的文件名 失败:state 2 err:返回详细错误 */ function createBase64($base64, $path, $filename) { $res = []; //匹配base64字符串格式 if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64, $result)) { //保存最终的图片格式 $postfix = $result[2]; $base64 = base64_decode(substr(strstr($base64, ','), 1)); $filename = $filename . '.' . $postfix; $path = $_SERVER["DOCUMENT_ROOT"] . $path . $filename; //创建图片 if (file_put_contents($path, $base64)) { $res['state'] = 1; $res['filename'] = $filename; } else { $res['state'] = 2; $res['err'] = 'Create img failed!'; } } else { $res['state'] = 2; $res['err'] = 'Not base64 char!'; } return $res; } //前端传来的base64,ajax发送的base64请不要做任何处理 $base64 = $_POST['base64']; var_dump($base64); //返回结果state=1的时候就是成功,错误信息在err中 var_dump(createBase64($base64, '/', 'girl'));