public static function uploadImage() { $allowFile = array("image/jpeg", "image/png", "image/gif"); $df = "Ymd-H-i-s"; $fileName = "TMPIMG" . date($df) . "." . Uploader::getExtension(); if (!Uploader::getTempFile()) { $result['error'] = true; $result['message'] = 'Please browse for a file!'; echo json_encode($result); return; } if (!in_array(Uploader::getType(), $allowFile)) { $result['error'] = true; $result['message'] = 'Please choose only image file (jpg, png or gif)!'; echo json_encode($result); return; } if (Uploader::moveUploadFileTo(self::$tmpDir, $fileName)) { $result['error'] = false; $result['message'] = 'File upload succeeded!'; $result['image'] = 'assets/upload/tmp/' . $fileName; $result['alt'] = $fileName; } else { $result['error'] = true; $result['message'] = 'Fail in moving file upload!'; } echo json_encode($result); }
/** * * 更新头像接口 * POST update_avatar.json * { * "pid":"原始照片的id", * "middle_content":"大头像base64数据" * "original_content":"原图base64数据" * } */ public function update_avatar() { if ($_POST['data']) { //flash截取头像 $data = json_decode($_POST['data'], TRUE); } else { $data = $this->get_data(); //手机端 } //如果是j2me平台直接取原图 if ($this->get_source() == 6) { $middle_data = @base64_decode($data['original_content']); } else { $middle_data = @base64_decode($data['middle_content']); } $pid = $data['pid']; //原图PID $original_data = @base64_decode($data['original_content']); //原图数据 if ($pid) { $photoModel = new Models\Photo(); if (!$photoModel->findOne($pid)) { $this->response(ResponseType::PHOTO_UPAVATAR_ERROR_INVALID); } } if (!$pid && $original_data) { $tmporigin = Core::tempname(); file_put_contents($tmporigin, $original_data); $uploader = new Uploader(); $uploader->process($tmporigin); //不是图片类型 if ($uploader->getType() !== Uploader::FILETYPE_IMAGE) { $this->response(ResponseType::PHOTO_ERROR_IMAGETYPE); } if ($result = $this->_processUpload($uploader, 1)) { $pid = $result['id']; } else { $this->response(ResponseType::PHOTO_UPAVATAR_ERROR_INVALID); } } if (!$pid || !$middle_data) { $this->response(ResponseType::ERROR_LACKPARAMS); } $tmpfile = Core::tempname(); if (!file_put_contents($tmpfile, $middle_data)) { $this->response(ResponseType::PHOTO_UPAVATAR_ERROR); } $uploader = new Uploader(); $uploader->process($tmpfile); //不是图片类型 if ($uploader->getType() !== Uploader::FILETYPE_IMAGE) { $this->response(ResponseType::PHOTO_ERROR_IMAGETYPE); } $photoModel = new Models\Photo(); $updata['cid'] = 1; //我的头像相册 $updata['oid'] = $pid; $updata['ctrl_type'] = 1; $updata['is_animated'] = 0; $updata['mtime'] = time(); if ($photoModel->create($uploader, $updata)) { $result['id'] = $photoModel->get_pid(); $result['md5'] = $photoModel->md5; $imgurls = $photoModel->geturi($result['id'], 48); $result['src'] = $imgurls[0]; list($set_avatar, $first_time) = $photoModel->setAvatar($photoModel->get_pid(), $updata['oid'], $updata['mtime']); if (!$set_avatar) { $this->response(ResponseType::PHOTO_UPAVATAR_ERROR); } $user_model = User_Model::instance(); $member_field = array('updatetime' => time()); if ($first_time) { $sms_content = '您好,这是您第一次设置头像,系统赠送了100条短信给您'; $user_model->present_sms($this->getUid(), 100, $sms_content, FALSE); $user_info = $user_model->get_user_info($this->getUid()); $member_field['completed'] = $user_info['completed'] + 10; } //发送头像修改动态 $feedModel = new Feed_Model(); $accessory[] = array('id' => $result['id']); $feedModel->addFeed($this->user_id, 3, '更新头像', $this->get_source(), array(), array(), $accessory); //更新memberinfo表 $user_model->update_user_info($this->getUid(), $member_field); $this->response(ResponseType::PHOTO_UPAVATAR_OK, '', $result); unlink($tmpfile); } else { $this->response(ResponseType::PHOTO_UPAVATAR_ERROR); } }