最近一段时间,被安卓前端整的萌萌的,对接口的时候,让改什么都不能改,人家有认识的PHP大牛啊,有坚强后端,其实这都无所谓,提高自身才是硬道理,你不改,那我来改,尝试多种解决方案,也能提高自己,哈哈,我就是这样安慰自己的。果不其然,提高了呢!
之前上传图片,不论是第三方还是服务器,不论是附件属性还是base64,感觉都还可以,没有什么难点呢。现在,数据流给到你,你去处理吧,其中牵扯除了数据流的图片外,还有必须token等字段。二进制流转base64对安卓原生来说,应该不难吧,可是呢,不好改,那我这后端想办法,于是有了以下接口,学并快乐着!
利用postman测试接口接收 二进制文件,附带参数可用GET方式获取
header设置
二进制文件设置
关键代码:
$data = file_get_contents ( 'php://input' ) ? file_get_contents ( 'php://input' ) : gzuncompress ( $GLOBALS ['HTTP_RAW_POST_DATA'] );
file_put_contents($this->save_fullpath, $data);
关键post设置
如果设置为file,对应的是$_FILE文件的信息,不是数据流
PHP代码:
const ROOT_PATH = './';
const FAIL_WRITE_DATA = 'Fail to write data';
const NO_STREAM_DATA = 'The post data is empty';
const NOT_CORRECT_TYPE = 'Not a correct image type'