Example #1
0
 private function SaveAvatar($tep_image_path, $item, $item_id)
 {
     $Images = new ImagesHandler('Filedata');
     $IoHandler = new IoHandler();
     if (!$item || $item == '') {
         $item = 'user';
     }
     $Images->item_type = $item;
     $imgId = $this->ImageLogic->AddNewImage();
     $rpath = 'images/' . $item . '/face/' . face_path($imgId);
     if (!file_exists($tep_image_path)) {
         return false;
     }
     if (!file_exists($rpath)) {
         $IoHandler->MakeDir($rpath);
     }
     $prefix = $rpath . $imgId;
     $ret = $Images->thumb($tep_image_path, false, 1, $prefix);
     if ($ret && count($ret) == 2) {
         $data = array();
         $data['photo'] = $ret['small'];
         $this->ImageLogic->UpdateImage($data, $imgId);
         //delete the uploaded temp file
         $IoHandler->DeleteFile($tep_image_path);
         return $ret;
     } else {
         $IoHandler->DeleteFile($tep_image_path);
         return false;
     }
 }
Example #2
0
 function UploadImage()
 {
     LogMessage("UploadImage");
     $this->GotoLogin();
     $imgId = $this->ImgLogic->AddNewImage();
     $this->Logger->Write($imgId);
     if (!$imgId || $imgId <= 0) {
         echo "0";
         return;
     }
     $uid = $this->User['uid'];
     $this->Logger->Write($uid);
     $this->User = $this->UserLogic->GetUser($uid);
     $IoHandler = new IoHandler();
     $item = $this->Post['item'] ? $this->Post['item'] : $this->Get['item'];
     $itemId = $this->Post['itemId'] ? $this->Post['itemId'] : $this->Get['itemId'];
     $imgtype = $this->Post['imgtype'] ? $this->Post['imgtype'] : $this->Get['imgtype'];
     $name = $_FILES['Filedata']['name'];
     $this->Logger->Write($name);
     $id = $imgId;
     $subfolder = 'topic';
     if ($item != '') {
         $subfolder = $item;
     } else {
     }
     $rpath = 'images/' . $subfolder . '/' . face_path($id);
     $image_path = __WEB_ROOT . '/' . $rpath;
     $image_name = $id . '_o.jpg';
     $image_file = $rpath . $image_name;
     $image_file_s = $rpath . $id . '_s.jpg';
     $image_file_t = $rpath . $id . '_t.jpg';
     $image_file_p = $rpath . $id . '_p.jpg';
     $image_file_tp = $rpath . $id . '_tp.jpg';
     $image_file_avt = '';
     $pic_field = 'Filedata';
     $UploadHandler = new UploadHandler($_FILES, $image_path, $pic_field, true, false);
     $UploadHandler->setMaxSize(3072);
     $UploadHandler->setNewName($image_name);
     $ret = $UploadHandler->doUpload();
     if (!$ret) {
         $rets = $UploadHandler->getError();
         $ret = $rets ? implode(" ", (array) $rets) : 'image upload is invalid';
         $r = array('error' => $ret, 'code' => -5);
         if ($r['code'] < 0 && $r['error']) {
             $this->ImgLogic->DeleteImage($imgId);
             $error = $UploadHandler->getError();
             $result = array();
             $result['status'] = "failed";
             $result['message'] = urlencode($error);
             echo urldecode(json_encode($result));
             exit;
         }
     }
     $image_type = $info['type'];
     list($image_width, $image_height, $image_type, $image_attr) = getimagesize($image_file);
     //this file used for topic list
     $Images = new ImagesHandler('Filedata');
     $Images->item_type = $item;
     $w = 120;
     $h = 120;
     if ($item == 'event') {
         $h = 105;
     }
     //if($image_width>1500){
     //	LogMessage('resize to 1500 size');
     //	resizeimage($image_file, $image_file_tp,1500,0,true);
     //	LogMessage('resize to 1500 size done');
     //	$image_file=$image_file_tp;
     //	list($image_width,$image_height,$image_type,$image_attr) = getimagesize($image_file_tp);
     //}
     LogMessage("uploaed completed,going to resize image");
     if ($image_width == $image_height) {
         LogMessage("Width is equal to height");
         $resize = $Images->thumb($image_file, false, 1, $rpath . $id, 0, 0, $image_width, $image_height, $w, $h, 'jpg');
     } else {
         if ($image_height > $image_width) {
             LogMessage("Width is less than height");
             $resize = $Images->thumb($image_file, false, 1, $rpath . $id, 0, 0, $image_width, $image_width, $w, $h, 'jpg');
         } else {
             if ($image_height < $image_width) {
                 LogMessage("Width is larger than height");
                 $resize = $Images->thumb($image_file, false, 1, $rpath . $id, 0, 0, $image_height, $image_height, $w, $h, 'jpg');
             }
         }
     }
     if (!$resize) {
         $result['status'] = "failed";
         $result['message'] = "图片上传失败";
         $this->ImgLogic->DeleteImage($imgId);
         $IoHandler->DeleteFile($image_file);
         echo json_encode($result);
         exit;
     }
     if ($this->CallType != 'open') {
         //reduce the photo quality, but keep photo original width and height
         resizeimage($image_file, $image_file_t, 1024, 0, true);
     } else {
         copy($image_file, $image_file_t);
     }
     if ($image_file_avt && $image_file_avt != '') {
         resizeimage($image_file, $image_file_avt, 50, 50, false);
     }
     //this file used for photo list
     resizeimage($image_file, $image_file_p, 200, 0, true);
     //update image table
     $datalist = array();
     $datalist['name'] = $name;
     $datalist['photo'] = $image_file_s;
     list($tWidth, $tHeight, $tType, $tAttr) = getimagesize($image_file_t);
     $datalist['width'] = $tWidth;
     $datalist['height'] = $tHeight;
     if ($item != '' && $itemId != '') {
         $datalist['item'] = $item;
         $datalist['itemid'] = $itemId;
     }
     $this->ImgLogic->UpdateImage($datalist, $imgId);
     $result = array();
     $result['status'] = "ok";
     $result['message'] = "图片上传成功";
     $item = array();
     $item['item_id'] = $imgId;
     $item['item_type'] = 'image';
     $item['item_src'] = $image_file_s;
     $item['item_name'] = $name;
     $item['item_width'] = $tWidth;
     $item['item_height'] = $tHeight;
     $result['item'] = $item;
     $IoHandler->DeleteFile($image_file);
     echo json_encode($result);
 }