为了账号安全,请及时绑定邮箱和手机立即绑定

将base 64字符串转换为图像文件?

将base 64字符串转换为图像文件?

PHP
大话西游666 2019-06-24 16:18:51
将base 64字符串转换为图像文件?我正在尝试将base 64图像字符串转换为图像文件。这是我的base 64字符串:http://pastebin.com/ENkTrGNG使用以下代码将其转换为图像文件: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' );但我得到了一个错误invalid image这里怎么了?
查看完整描述

3 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

你得把上面写的那部分去掉data:image/png;base64,在图像数据的开头。之后是实际的base 64数据。

只要把所有的东西都去掉,包括base64,(打电话前)base64_decode()你会没事的。


查看完整回答
反对 回复 2019-06-24
?
倚天杖

TA贡献1828条经验 获得超3个赞

也许像这样

function save_base64_image($base64_image_string, $output_file_without_extension, $path_with_end_slash="" ) {
    //usage:  if( substr( $img_src, 0, 5 ) === "data:" ) {  $filename=save_base64_image($base64_image_string, 
    $output_file_without_extentnion, getcwd() . "/application/assets/pins/$user_id/"); }      
    //
    //data is like:    data:image/png;base64,asdfasdfasdf
    $splited = explode(',', substr( $base64_image_string , 5 ) , 2);
    $mime=$splited[0];
    $data=$splited[1];

    $mime_split_without_base64=explode(';', $mime,2);
    $mime_split=explode('/', $mime_split_without_base64[0],2);
    if(count($mime_split)==2)
    {
        $extension=$mime_split[1];
        if($extension=='jpeg')$extension='jpg';
        //if($extension=='javascript')$extension='js';
        //if($extension=='text')$extension='txt';
        $output_file_with_extension=$output_file_without_extension.'.'.$extension;
    }
    file_put_contents( $path_with_end_slash . $output_file_with_extension, base64_decode($data) );
    return $output_file_with_extension;}


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 493 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信