多分私は単純なものが欠けているかもしれませんが、フォームの検証を正しく行うことができません。CodeIgniter - フィールドとファイルのアップロードでフォームを確認する
がどのようにフォームの検証が
$this->upload->do_upload("fldImage")
を行わず、あまりにもファイルの検証を確認するために取得することができ、これは現在、私の検証プロセスである:
if ($this->form_validation->run() == FALSE)
{
if (! $this->upload->display_errors("fldImage"))
{
$error = array('error' => $this->upload->display_errors());
}
$this->load->view('submitBlog', $error);
}
else
{
if (! $this->upload->do_upload("fldImage"))
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('submitBlog', $error);
}
else
{
$data = array('upload_data' => $this->upload->data());
unset($blog['submit']);
$imagePath = "uploads/".$data['upload_data']['file_name'];
$blog['fldImage'] = $imagePath;
$blog['fldDateAdded'] = $datetime;
$this->db->insert('tblBlog', $blog);
$this->load->view('submitBlogSuccess', $data);
}
}
もちろん、私は
を呼び出すことはできませんdo_upload("fldImage")
実行中なし
do_upload()
画像は有効ですが他のフォームの値がそうでない場合は、画像をアップロードしません。
$this->form_validation->add_rule('userfile', 'required|callback__check_ext');
そして、次のコールバック関数:PyroCMSから借り
function _check_ext()
{
if (! empty($_FILES['userfile']['name']))
{
$ext = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
$allowed = array('jpg', 'png');
if (! in_array(strtolower($ext), $allowed))
{
$this->form_validation->set_message('_check_ext', 'Extension not allowed');
return FALSE;
}
}
return TRUE;
}
コンセプト