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系统一万遍的权限问题,在检查下。

相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!