我一直在尝试做一些应该非常简单的事情,但不知何故不是在我一直在努力的这个特定项目中。
这是一个简单的CodeIgniter 3项目。我只想创建一个非常简单的页面,让我选择一个包含多个坐标的.txt
文件,并将其添加到我的数据库中。
模型的代码已经完成了。我正在尝试链接我的视图,以便在选择.txt
文件后单击提交按钮时,它将调用我的控制器中的特定函数,该函数将依次调用我的模型的函数,该函数应该添加所述存入我的数据库。
以下是视图的代码(application / views / pageTEST.php):
<HTML>
<form method = "post">
<label for = "zone">Zone</label>
choose zone : <input type = "file" id = "fA" name = "zone" accept = "file_extension/.txt">
<input type = "submit" id = "btn" name = "loader">
</form>
<HTML>
控制器的代码(application / controllers / modelController.php):
class modelController extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('loader');
$this->load->helper('url_helper');
}
public function index()
{
$this->load->view('pageTEST');
}
public function load()
{
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('zone', 'Zone', 'required');
if($this->form_validation->run() == = FALSE)
{
$this->load->view('error');
}
else
{
$this->loader->loadZone($this->input->post('zone'));
//this is supposed to load the .txt file i chose in the form and add it into the DB
}
}
}
我不需要显示我的模型的代码,因为它不是问题。我需要知道的是在点击提交按钮后如何调用modelController->load()
。
到目前为止,我还无法将它们联系起来。我尝试使用指向某个测试页的简单链接替换控制器中load()
方法的代码,但我的视图无法访问该函数。我的代码中缺少什么?
答案 0 :(得分:0)
您的表单应如下声明:
<form action="<?php echo site_url('modelController/load'); ?> enctype="multipart/form-data">
然后您可以通过文件数组访问文件zone
:
$_FILES['zone']
您可以通过$_FILES["zone"]["tmp_name"]
访问它($this->loader->loadZone($_FILES["zone"]["tmp_name"]);
可能有效),如果不是,您需要将文件移动到可读位置:
https://github.com/dyne/domain-list/blob/master/data/google
您也可以使用CI的上传库。