最新消息:博客断断续续关停过,感谢保留友链的友们,以后本博客可能会比较少更新,但是会一直开下去,并保持稳定性。

php搭建的webservices使用base64接收上传的图片

技术交流 东子 1455次浏览 抢沙发 无图浏览

最近公司php搭建的webservices供安卓和IOS调用接口的东西需要做一个拍照上传图片的功能,刚开始比较头疼该怎么接收,传什么值给我webservices这边呢,后来看到有文章说把图片转为base64,在webservices服务端接收,然后再把base64转为图片,保存到本地。然后我就懂了~

<?php
header('Content-type:text/html;charset=utf-8');
$base64_image_content = trim($_POST['image']); //接收传过来的图片base64字符串

if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){ //正则匹配是否图片类型
    $type = $result[2]; //取得传过来的字符串文件类型
    if(in_array($type,array('pjpeg','jpeg','jpg','gif','bmp','png'))){ //判断文件类型是否在此集合中
        die('文件类型错误');
    }

    $new_file = "./".date('YmdHis').".{$type}"; //自定义路径+文件名
    if(file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){ //写入本地文件(文件名,内容)
        echo '图片保存成功:', $new_file;
    }
    die('图片保存失败。');
}

不过安卓那边把图片转为base64的时候没有带上图片的类型参数data:image/jpg;base64,,后来告诉他,他手动加上才可以用。

声明:欢迎转载,转载请注明来源:东子博客。  本文地址链接:http://blog.kilvn.com/php_webservices_base64_upload_image/

发表我的评论
取消评论
表情 每日打卡 贴图 链接 私密消息

Hi,您需要填写昵称和邮箱!

  • 昵称
  • 邮箱
  • 网址