app项目中我负责接口处理。在app中有会员修改头像功能,要实现图片的上传功能。接口我也是第一次开发,上传图片更是一头雾水,为了搞清楚是怎么个上传方法,我可没少百度。
php处理ios图片上传。尝试各种方法之后,终于成功了。下面我就记录php处理ios图片上传的功能。
开发之前有几个注意事项:
1、编码格式。我这里采用的是base64编码格式。
2、如果是linux系统,一定要注意了,你保存的路径是不是有写的权限。()
3、数据的接收方式,推荐使用POST方式。
代码:
$pic = I('request.pic'); if ($pic) { $this->upfile($pic); } else { $data = array('list' => array(), 'errmsg' => '上传失败', 'status' => 500); $this->ajaxReturn($data); } // 上传图片 public function upfile($pic) { // 组装文件夹 $pubtime1 = date("Y-m-d", time()); $pubtime2 = explode("-", $pubtime1); $dir = "./$pubtime2[0]$pubtime2[1]/"; if (!is_dir($dir)) { mkdir($dir, 0777, TRUE); } // 组装文件名称 $filename = time().rand(10000, 99999).'.jpg'; // 写入文件 if (file_put_contents($dir.$filename,base64_decode($pic))) { $data = array('list' => $dir.$filename, 'errmsg' => '成功', 'status' => 200); $this->ajaxReturn($data); } else { $data = array('list' => array(), 'errmsg' => '上传失败', 'status' => 500); $this->ajaxReturn($data); } }
通过上面的接口,很轻松的解决了ios图片上传,安卓图片上传的功能。
一次成功的背后,都是满满的汗水,顺便啰嗦分享下我找到解决方法的曲折路途。
问题:接口无法接收到ios的数据。
方法:可以先直接输入到txt文本中,看看是不是真的没有数据。file_put_contents('1.txt',json_encode($_POST));
如果没有数据,那么查看是不是请求的不是POST等。还是就是一万年的linux文件的写入权限给了没。
问题:接收到编码,可是解压出来是一串乱码。
方法:检查是不是真的标准的base64编码。
问题:能够得到路径,就是看不到图片,写入失败。
方法:linux系统一万遍的权限问题,在检查下。
友情提示:垃圾评论一律封号...