webservices上传文件
客户端:
ob_clean(); ob_start(); readfile("D:/44.jpg"); $logo = ob_get_clean(); $pararmArr = array( 'm_id'=>'10', 'm_logo'=>base64_encode($logo), ); $g = json_encode($pararmArr); $b = $client->addUserLogo($g);
读取二进制然后base64编码,最后json传输。
服务端:
$paramsArr = json_decode($params,true); $m_id = (isset($paramsArr['m_id']) AND $paramsArr['m_id'] != '') ? $paramsArr['m_id'] : null; $m_logo = (isset($paramsArr['m_logo']) AND $paramsArr['m_logo'] != '') ?$paramsArr['m_logo'] : null; if(empty($paramsArr) OR $m_id === null OR $m_logo === null){ return json_encode(array('error'=>'empty params!')); } unset($paramsArr); $this->_createModel(1); if($this->activeModel === null){ return json_encode(array('error'=>'not exist model!')); } $m_logo_path = $this->logo_pre .'/'.date("Y").'/'.date("m").'/'.date("d").'/'.$m_id.'.jpg'; @mkdir($this->logo_pre .'/'.date("Y").'/'.date("m").'/'.date("d"),0777,true); if(file_exists($m_logo_path)){ unlink($m_logo_path); } $flag = file_put_contents($m_logo_path,base64_decode($m_logo)); $parmas = array( 'm_id'=>$m_id, 'm_logo_path'=>$m_logo_path, ); if($flag === false){ return json_encode(array('error'=>'add failure!')); } $a = $this->activeModel->updateLogo($parmas);
只要反解析就行了,注意目录的创建~以及写权限,最后入库。
posted on 2013-10-23 16:45 kudosharry 阅读(210) 评论(0) 编辑 收藏 举报