成绩:APP上传头像,php作为API端应该若何接纳图片信息?
上传局部的代码没有是成绩,次要是server端若何能力接纳到APP真个图片信息。正在B/S架构下,能够间接经过form表单设置enctype="multipart/form-data",$_FILES数组中就有了图片信息。那末正在C/S模式中,也是如斯吗? (保举学习:PHP视频教程)
解答1(见形式一): 普通是采纳二进制传播输,客户端传的是二进制,效劳器端接纳,而后file_put_contents写入文件就能够了。文件名格局,文件放那里,这些本人界说。
解答2(见形式二):Android或许IOS客户端模仿一个HTTP的Post申请到效劳器端,效劳器端接纳相应的Post申请后(经过$_FILES猎取图片资本),前往呼应信息给给客户端。(这一种形式以及猎取Html形式提交的办法同样)
把图片进行base64加密成字符串,进行传输
阐明:IOS或许安卓端:经过把图片进行base64编码失去字符串,传给接口
接口端:把接纳的字符串进行base64解码,再经过file_put_contents函数,上传到指定的地位
/** * 图片上传 * @param $imginfo - 图片的资本,数组类型。['图片类型','图片巨细','图片进行base64加密后的字符串'] * @param $companyid - 公司id * @return mixed */ public function uploadImage( $imginfo , $companyid ) { $image_type = strip_tags($imginfo[0]); //图片类型 $image_size = intval($imginfo[1]); //图片巨细 $image_base64_content = strip_tags($imginfo[2]); //图片进行base64编码后的字符串 $upload = new UploaderService(); $upconfig = $upload->upconfig; if(($image_size > $upconfig['maxSize']) || ($image_size == 0)) { $array['status'] = 13; $array['co妹妹ent'] = "图片巨细没有合乎要求!"; return $array; } if(!in_array($image_type,$upconfig['exts'])) { $array['status'] = 14; $array['co妹妹ent'] = "图片格局没有合乎要求!"; return $array; } // 设置附件上传子目次 $savePath = 'bus/group/' . $companyid . '/'; $upload->upconfig['savePath'] = $savePath; //图片保留的称号 $new_imgname = uniqid().mt_rand(100,999).'.'.$image_type; //base64解码后的图片字符串 $string_image_content = base64_decode($image_base64_content); // 保留上传的文件 $array = $upload->upload($string_image_content,$new_imgname); return $array; }
// 上传设置装备摆设信息 public $upconfig = array( 'maxSize' => 3145728, //3145728B(字节) = 3M 'exts' => array('jpg', 'gif', 'png', 'jpeg'), // 'rootPath' => './Public/Uploads/info/', 'rootPath' => 'https://www.eyuebus.com/Public/Uploads/info/', ); /** * @param $string_image_content - 所要上传图片的字符串资本 * @param $new_imgname - 图片的称号,如:57c14e197e2d1744.jpg * @return mixed */ public function upload($string_image_content,$new_imgname) { $res['result'] = 1; $res['imgurl'] = ''; $res['co妹妹ent'] = ''; do { $ret = true; $fullPath = $this->upconfig['rootPath'] . $this->upconfig['savePath']; if(!file_exists($fullPath)){ $ret = mkdir($fullPath, 0777, true); } if(!$ret) { // 上传谬误提醒谬误信息 $res['result'] = 12; $res['co妹妹ent'] = "创立保留图片的门路失败!"; return $res; break; } //开端上传 if (file_put_contents($fullPath.$new_imgname, $string_image_content)){ // 上传胜利 猎取上传文件信息 $res['result'] = 0; $res['co妹妹ent'] = "上传胜利!"; $res['imgname'] = $new_imgname; }else { // 上传谬误提醒谬误信息 $res['result'] = 11; $res['co妹妹ent'] = "上传失败!"; } } while(0); return $res; }
以上就是php接口若何传输图片的具体内容,更多请存眷资源魔其它相干文章!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!