我有一个带有文本输入和文件输入的表单。使用 Codeigniter 的验证库验证两种输入类型的正确方法是什么?我找到了一些解决方案,但它们不能正常工作或看起来有点矫枉过正(创建新库或修改 CI 系统文件)。
在我看来,我正在使用 1 个多部分表单并同时显示文本验证错误和上传错误。
到目前为止,这是我的控制器中的内容...
function create() //create new post
{
$this->form_validation->set_rules('content', 'Entry', 'trim|required|xss_clean');
$this->form_validation->set_rules('category_id', 'Category', 'trim|required|xss_clean|integer');
//Text input fields
if ($this->form_validation->run() == FALSE)
{
$this->load->view('new_post');
}
else
{
$config['upload_path'] = './uploads/posts/';
$config['allowed_types'] = 'jpg|png';
$config['max_size'] = '800'; //in KB
$this->load->library('upload', $config);
//File Upload
if (! $this->upload->do_upload())
{
$upload_error['upload_error'] = array('error' => $this->upload->display_errors());
$this->load->view('my_view', $upload_error);
return FALSE;
}
//Add to database
$data = array (
'user_id' => $this->tank_auth->get_user_id(),
'category_id' => $this->input->post('category_id'),
'content' => $this->input->post('content')
);
$this->Posts_model->create_post($data);
$this->session->set_flashdata('success', 'Post_added!');
redirect('posts');
}
}
我一直You did not select a file to upload.
在我的视野中。