文件 GeoLite2-Country.mmdb 不存在或不可读
The file GeoLite2-Country.mmdb does not exist or is not readable
我在一个小项目中,我需要收集向一个网站提交联系表格的国家/地区表格,现在我正在使用 MaxMind/GeoLite2 阅读GeoIp2 v2.0 的数据库文件(从作曲家安装),我收到下一条错误消息。
The file GeoLite2-Country.mmdb does not exist or is not readable.
我正在使用 CodeIgniter v3.1.6
这是完整的错误信息:
An uncaught Exception was encountered
Type: InvalidArgumentException
Message: The file "http://localhost/isite/assets/geoip2db/GeoLite2-Country.mmdb" does not exist or is not readable.
Filename: C:\xampp\htdocs\isite\vendor\maxmind-db\reader\src\MaxMind\Db\Reader.php
Line Number: 48
Backtrace:
File: C:\xampp\htdocs\isite\vendor\geoip2\geoip2\src\Database\Reader.php
Line: 53
Function: __construct
File: C:\xampp\htdocs\isite\application\controllers\Main.php
Line: 28
Function: __construct
File: C:\xampp\htdocs\isite\index.php
Line: 317
Function: require_once
The GeoLite2-Country.mmdb file is there.
这是我调用 GeoIp2 的函数 Class:
public function contact_submit(){
$reader = new GeoIp2\Database\Reader(base_url().'assets/geoip2db/GeoLite2-Country.mmdb');
$record = $reader->country($_SERVER['REMOTE_ADDR']);
$data = array(
'name' => $this->input->post('name'),
'mail' => $this->input->post('mail'),
'phone' => $this->input->post('phone'),
'comment' => $this->input->post('comment'),
'USER_AGENT' => $_SERVER['HTTP_USER_AGENT'],
'ADDR' => $_SERVER['REMOTE_ADDR'],
'PORT' => $_SERVER['REMOTE_PORT'],
'ISO' => $record->country->isoCode,
'COUNTRY_NAME' => $record->country->name,
'COUNTRY_STATE' => $record->mostSpecificSubdivision->name,
'COUNTRY_STATE_ISO' => $record->mostSpecificSubdivision->isoCode,
'CITY_NAME' => $record->city->
'POSTAL_CODE' => $record->postal->code,
'LONGITUDE' => $record->location->longitude,
'LATITUDE' => $record->location->latitude
);
if($this->MainModel->submitComment($data))
redirect(base_url().'index.php/main/contact?statusMessage=1', 'location');
else
redirect(base_url().'index.php/main/contact?statusMessage=0', 'location');
}
如果需要更多信息,请发表评论,我会尽快添加
构造函数采用本地数据库文件的路径,但您似乎为其提供了 HTTP URI。您需要删除或替换 base_url()
.
我在一个小项目中,我需要收集向一个网站提交联系表格的国家/地区表格,现在我正在使用 MaxMind/GeoLite2 阅读GeoIp2 v2.0 的数据库文件(从作曲家安装),我收到下一条错误消息。
The file GeoLite2-Country.mmdb does not exist or is not readable.
我正在使用 CodeIgniter v3.1.6
这是完整的错误信息:
An uncaught Exception was encountered
Type: InvalidArgumentException
Message: The file "http://localhost/isite/assets/geoip2db/GeoLite2-Country.mmdb" does not exist or is not readable.
Filename: C:\xampp\htdocs\isite\vendor\maxmind-db\reader\src\MaxMind\Db\Reader.php
Line Number: 48
Backtrace:
File: C:\xampp\htdocs\isite\vendor\geoip2\geoip2\src\Database\Reader.php
Line: 53
Function: __construct
File: C:\xampp\htdocs\isite\application\controllers\Main.php
Line: 28
Function: __construct
File: C:\xampp\htdocs\isite\index.php
Line: 317
Function: require_once
The GeoLite2-Country.mmdb file is there.
这是我调用 GeoIp2 的函数 Class:
public function contact_submit(){
$reader = new GeoIp2\Database\Reader(base_url().'assets/geoip2db/GeoLite2-Country.mmdb');
$record = $reader->country($_SERVER['REMOTE_ADDR']);
$data = array(
'name' => $this->input->post('name'),
'mail' => $this->input->post('mail'),
'phone' => $this->input->post('phone'),
'comment' => $this->input->post('comment'),
'USER_AGENT' => $_SERVER['HTTP_USER_AGENT'],
'ADDR' => $_SERVER['REMOTE_ADDR'],
'PORT' => $_SERVER['REMOTE_PORT'],
'ISO' => $record->country->isoCode,
'COUNTRY_NAME' => $record->country->name,
'COUNTRY_STATE' => $record->mostSpecificSubdivision->name,
'COUNTRY_STATE_ISO' => $record->mostSpecificSubdivision->isoCode,
'CITY_NAME' => $record->city->
'POSTAL_CODE' => $record->postal->code,
'LONGITUDE' => $record->location->longitude,
'LATITUDE' => $record->location->latitude
);
if($this->MainModel->submitComment($data))
redirect(base_url().'index.php/main/contact?statusMessage=1', 'location');
else
redirect(base_url().'index.php/main/contact?statusMessage=0', 'location');
}
如果需要更多信息,请发表评论,我会尽快添加
构造函数采用本地数据库文件的路径,但您似乎为其提供了 HTTP URI。您需要删除或替换 base_url()
.