Esempio n. 1
0
 public function uploadOSS($input_file_field = 'pic', $save_dir = 'pic', $ext = 'jpg')
 {
     $file_path = $_FILES[$input_file_field]["tmp_name"];
     if (!$file_path) {
         FLogger::write('tmp_name为空', 'update_mumu');
         return '';
     }
     $file_md5 = md5_file($file_path);
     $_file_path_info = pathinfo($_FILES[$input_file_field]['name']);
     $file_ext = strtolower($_file_path_info['extension']);
     if (!$file_ext) {
         $this->get_extension($file_path);
     }
     if (!$file_ext) {
         $file_ext = $ext;
     }
     $content_type = MimeTypes::get_mimetype(strtolower($file_ext));
     $object = 'oss/' . $save_dir . '/' . date('Ym/d/His') . rand(10000, 99999) . '.' . $file_ext;
     $flag = $this->oss->upload_by_file($this->bucket, 'uploads/' . $object, $file_path, $content_type);
     if (!$flag) {
         $object = '';
     }
     $data = array('object' => $object, 'md5' => $file_md5);
     return $data;
 }
Esempio n. 2
0
 /**
  * @return FMongoDB
  */
 public static function getInstance($db_conf = 'default')
 {
     static $mongo = array();
     if (!FConfig::get('global.mongoDB.enable')) {
         FLogger::write('调用了 FMongoDB,但是 配置中没有启用 global.mongoDB.enable', 'error');
         return new FMongoDBNull();
     }
     if (isset($mongo[$db_conf])) {
         return $mongo[$db_conf];
     } else {
         $mongo[$db_conf] = new FMongoDB(FConfig::get('db.mongoDB.' . $db_conf . '.dsn'));
         $mongo[$db_conf]->selectDb(FConfig::get('db.mongoDB.' . $db_conf . '.db'));
         return $mongo[$db_conf];
     }
 }
Esempio n. 3
0
 /**
  *处理微信服务器消息
  */
 public function defaultAction()
 {
     global $_F;
     $this->openDebug();
     require_once APP_ROOT . 'lib/weixin/WeixinChat.class.php';
     $options = array('token' => 'mumu2015api', 'appid' => 'wxe3ae7e3cf42d0825', 'appsecret' => '2d7b39fcb0813e7b07830683cc3caa50');
     $weixin = new WeixinChat($options);
     //        $weixin->valid();
     $logger = new FLogger("weixn");
     $logger->append('==============开始:===============');
     $getRev = $weixin->getRev();
     $logger->append($getRev->getRevText());
     if ($weixin->getRevType()) {
         $logger->append('getRevType:' . $weixin->getRevType());
         $eventData = $weixin->getRevEvent();
         $logger->append('eventData:' . var_export($eventData, true));
         if ($eventData) {
             $openid = $weixin->getRevFrom();
             if ($eventData['event'] == 'click') {
                 switch ($eventData['key']) {
                     case 'V1001_FREE':
                         $type = 1;
                         break;
                     case 'V1001_TODAY_ACTIVITY':
                         $type = 2;
                         break;
                     case 'V1001_FOUND':
                         $type = 3;
                         break;
                     default:
                         $type = 1;
                         break;
                 }
                 $data = $this->getNewsMsgData($type);
             } else {
                 if ($eventData['event'] == 'subscribe') {
                     //                        $upData = array(
                     //                            'subscribe' => 1,
                     //                            'subscribe_time' => date('Y-m-d H:i:s', time())
                     //                        );
                     $userInfo = $weixin->getUserInfo($openid);
                     FLogger::write($userInfo, 'subscribe');
                     Service_UserWechat::reg($userInfo, $openid);
                     //                        $data = $this->getNewsMsgData(2);
                     $data = '欢迎关注缘分吧';
                 }
                 if ($eventData['event'] == 'unsubscribe') {
                     //                        $upData = array(
                     //                            'subscribe' => 0
                     //                        );
                 }
             }
         }
         if ($data) {
             $logger->append(var_export($data, true));
             $logger->append(FRequest::getClientIP());
             //                $logger->append(json_encode($weixin->getRevData()));
             $weixin->text($data);
             $weixin->reply();
         }
     } else {
         $logger->append('getRevType为空' . $weixin->getRevType());
     }
     $logger->append('==============结束:===============');
 }
Esempio n. 4
0
 /**
  * 获得表结构
  * @return array|null
  * @throws Exception
  */
 public function getTableInfo()
 {
     $tableInfo = FCache::get($this->_table);
     if ($tableInfo) {
         return $tableInfo;
     }
     $sql = "desc {$this->config['table_pre']}{$this->table_raw}";
     try {
         $this->connect('r');
         $stmt = $this->_dbh->prepare($sql);
         $stmt->execute();
         $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
         $tableInfo = array('pri' => null, 'fields' => null);
         foreach ($rows as $row) {
             if ($row['Key'] == 'PRI') {
                 $tableInfo['pri'] = $row['Field'];
             }
             $tableInfo['fields'][$row['Field']] = $row;
         }
         FCache::set($this->_table, $tableInfo, 8640000);
     } catch (PDOException $e) {
         FLogger::write("获取表信息失败: " . $this->_table . "\t{$sql}\t" . $e->getMessage(), 'error');
         throw new Exception("获取表信息失败。");
     }
     return $tableInfo;
 }
Esempio n. 5
0
 /**
  * 获得表结构
  * @return array|null
  * @throws Exception
  */
 private function getTableInfo()
 {
     $tableInfo = FCache::get($this->_table);
     if ($tableInfo) {
         return $tableInfo;
     }
     try {
         $sql = "desc {$this->_table}";
         $this->connect(FDB::$DB_READ);
         $stmt = $this->_dbh->prepare($sql);
         $stmt->execute();
         $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
         $tableInfo = array('pri' => null, 'fields' => null);
         foreach ($rows as $row) {
             if ($row['Key'] == 'PRI') {
                 $tableInfo['pri'] = $row['Field'];
             }
         }
         $tableInfo['fields'] = $rows;
         FCache::set($this->_table, $tableInfo, 8640000);
     } catch (PDOException $e) {
         FLogger::write("获取表信息失败: " . $this->_table . "\t" . $e->getMessage());
         throw new Exception("获取表信息失败。");
     }
     return $tableInfo;
 }
Esempio n. 6
0
 /**
  * @param $e Exception | array
  */
 public function traceError($e)
 {
     global $_F;
     $error_code = 0;
     $exception_trace = '';
     if (!is_array($e)) {
         $error_code = $e->getCode();
     }
     if (is_array($e)) {
         $error_message = $e['message'];
         $error_file = $e['file'];
         $error_line = $e['line'];
     } else {
         $error_message = $e->getMessage();
         $error_file = $e->getFile();
         $error_line = $e->getLine();
         $exception_trace = nl2br($e->__toString());
     }
     $exception_message = $error_message . '<br /> 异常出现在:' . $error_file . ' 第 ' . $error_line . ' 行';
     $log_text = "\n--------------------------------------------------------\n";
     if (isset($_F['current_sql'])) {
         $log_text .= "SQL: " . $_F['current_sql'] . "\n";
         $log_text .= "--------------------------------------------------------\n";
     }
     if (is_object($e)) {
         $log_text .= $e->__toString() . "\n";
         $log_text .= "--------------------------------------------------------\n";
     } else {
         $log_text .= $error_message . "\n";
         $log_text .= "--------------------------------------------------------\n";
     }
     if ($_F['run_in'] == 'shell') {
         $log_text_header = "\n\n          ==========================================\n                         ERROR FOUND\n          ========================================== \n";
         die($log_text_header . $log_text);
     }
     FLogger::write($log_text, 'error');
     if (!$_F['debug']) {
         if ($error_code == 404) {
             FResponse::sendStatusHeader(404);
             $this->view->displaySysPage('404.tpl');
         } else {
             FResponse::sendStatusHeader(500);
             $this->view->displaySysPage('500.tpl');
         }
         exit;
     }
     $exception_message = str_replace(F_APP_ROOT, '', $exception_message);
     if ($_F['in_ajax']) {
         if ($_F['debug']) {
             $ajaxError = preg_replace('/<br.+?>/i', "\n", $exception_message);
             FResponse::output(array('result' => 'error', 'msg' => $ajaxError));
             exit;
         } else {
             if ($error_code == 404) {
                 FResponse::sendStatusHeader(404);
             } else {
                 FResponse::sendStatusHeader(500);
             }
             exit;
         }
     }
     $exception_trace = str_replace(F_APP_ROOT, '', $exception_trace);
     $this->view->assign('exception_message', $exception_message);
     $this->view->assign('exception_trace', preg_replace('#[\\w\\d \\#]+?/f.php.+?$#si', ' Flib 引导入口', $exception_trace));
     $this->view->displaySysPage('exception.tpl');
 }