我使用自定义表单验证器功能来检查是否正在上传图像类型文件。它非常简单,但无论我尝试什么,我似乎无法让验证器正确传递变量。
HTML
<input type="file" name="image" /><div><?php echo form_error('image'); ?></div>
CONTROLLER
public function postAd(){
$this->form_validation->set_rules("image", "image", "callback_valid_image");
if ($this->form_validation->run()==FALSE){
$this->load->view('header', array('title'=>"Post an ad"));
$this->load->view('ads/default');
$this->load->view('footer');
}else{
echo "EMPTY";
}
}
public function valid_image($file){
echo "RAW:" . $file . "<br />";
echo "FILE:",$_FILES[$file];
}
我也在form_validation语言文件中设置了消息。
无论我输入什么类型的文件,或者我将其留空,它都不会在echo“RAW”或echo“FILE”行显示任何文件。
答案 0 :(得分:1)
Form Validation Library不适用于$_FILES
数组,仅适用于$_POST
。您应该使用File Uploading Library并使用类似的内容:
if (!$this->upload->do_upload()){
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
}
else{
//upload worked.
}
答案 1 :(得分:0)
要设置自己的自定义消息,请使用以下函数:
$this->form_validation->set_message('rule', 'Message');