base64字符串转换成图片文件

用canvas的toDataURL得出一个base64的字符串想把canvas里的图片上传到服务器,保存成图片格式,请问该怎么做?服务端用php... 用canvas的toDataURL得出一个base64的字符串 想把canvas里的图片上传到服务器,保存成图片格式,请问该怎么做?服务端用php 展开
 我来答
田品sina
推荐于2017-11-26 · TA获得超过137个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:67.5万
展开全部

需要在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是你上传路径):

zhaoapk
2014-01-29 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1584万
展开全部
// 从网上复制过来的,试试吧
// 要砍掉前面的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根本就看不了 求解
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式