infoDb = new Info(); $this->gsDb = new GeneralSettings(); $this->basedir = preg_replace('/\/app\/.*/', '/public/', __DIR__); $this->s3 = new S3Client([ 'credentials' => [ 'key' => env('AWS_APP_KEY'), 'secret' => env('AWS_APP_SECRET'), ], 'region' => env('AWS_S3_REGION'), 'version' => 'latest', ]); } public function setdoc($data) { $path = env('APP_ENV') . '/' . date("Y-m-d") . '/' . time() . '.jpg'; $this->s3->putObject([ 'ACL' => 'public-read', 'Body' => $data, 'Bucket' => env('AWS_S3_BUCKET'), 'ContentType' => 'image/jpeg ', 'Key' => $path, ]); return $path; } public function setinfo($info) { $info['cdate'] = date("Y-m-d H:i:s"); $info['ip'] = $this->getUserIP(); $this->infoDb->insert($info); // 計數 if ($info['image_uri'] != '') { // 掃臉 $this->gsDb->where('key', 'counter_a')->update(['value' => DB::raw("value+1")]); } else { // 留言 $this->gsDb->where('key', 'counter_b')->update(['value' => DB::raw("value+1")]); } return true; } public function counterGet($type) { $counter = $this->gsDb->select(['value'])->where('key', '=', 'counter_' . $type)->first(); $counter = (isset($counter)) ? $counter->toArray() : []; $counter = (count($counter) > 0) ? (int)$counter['value'] : 0; return $counter; } public function counterSet($type) { $this->gsDb->where('key', 'counter_' . $type)->update(['value' => DB::raw("value+1")]); return true; } public function reset() { DB::select(DB::raw("truncate table infos;")); DB::update(DB::raw("update general_settings set value=0 where 1=1;")); return true; } public function getUserIP() { $ipaddress = ''; if (isset($_SERVER['HTTP_CLIENT_IP'])) $ipaddress = $_SERVER['HTTP_CLIENT_IP']; else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; else if (isset($_SERVER['HTTP_X_FORWARDED'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED']; else if (isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])) $ipaddress = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP']; else if (isset($_SERVER['HTTP_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; else if (isset($_SERVER['HTTP_FORWARDED'])) $ipaddress = $_SERVER['HTTP_FORWARDED']; else if (isset($_SERVER['REMOTE_ADDR'])) $ipaddress = $_SERVER['REMOTE_ADDR']; else $ipaddress = 'UNKNOWN'; return $ipaddress; } }