base64字符串转换成图片文件
发布网友
发布时间:2022-04-25 06:08
我来回答
共2个回答
热心网友
时间:2022-04-06 08:51
需要在php端处理base64字符串里的头部信息
贴一段我正在用的
php($stream是你传上来的base64
//获取扩展名和文件名
if (preg_match('/(?<=\/)[^\/]+(?=\;)/',$stream,$pregR)) $streamFileType ='.' .$pregR[0]; //读取扩展名,如果你的程序仅限于画板上来的,那一定是png,这句可以直接streamFileType 赋值png
$streamFileRand = date('YmdHis').rand(1000,9999); //产生一个随机文件名(因为你base64上来肯定没有文件名,这里你可以自己设置一个也行)
$streamFilename = $upPath."/".$streamFileRand .$streamFileType;
//处理base64文本,用正则把第一个base64,之前的部分砍掉
preg_match('/(?<=base64,)[\S|\s]+/',$stream,$streamForW);
if (file_put_contents($streamFilename,base64_decode($streamForW[0]))===false) Common::exitWithError("文件写入失败!","");//这是我自己的一个静态类,输出错误信息的,你可以换成你的程序
字符串,假设随机命名,如果你不要随机命名,可以改streamFileRand 的值,$upPath是你上传路径):
热心网友
时间:2022-04-06 10:09
// 从网上复制过来的,试试吧
// 要砍掉前面的data:image/png;base64,(如果有的话)
function base64_to_jpeg( $base64_string, $output_file ) {
$ifp = fopen( $output_file, "wb" );
fwrite( $ifp, base64_decode( $base64_string) );
fclose( $ifp );
return( $output_file );
}
$image = base64_to_jpeg( $my_base64_string, 'tmp.jpg' );
追问额 不行呢 出来的tmp.jpg根本就看不了 求解