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编辑  收藏  举报

导航