2012-09-16 51 views
0

我有一个文件上传我的表格的一部分,代码点火器表单验证和文件上传?

我使用的代码点火器表单验证库,

我也使用的代码点火器上传库,

我知道如何上传图像等使用上传库,但我想在表单验证过程中包含基本的文件验证(例如,必需的,最大大小,文件类型)。

,我感到我需要做一个回调,但问题是,验证库只检查$_POST它不检查$_FILES

我怎样才能做到这一点?

我想也许在所需输入验证只是一个回调,用实际$_FILES上传库,进行实际验证复制到接线柱阵列

$_POST['image'] = $_FILES['image']

,然后运行项目,但这似乎有点哈克。

有没有更好的方法来做到这一点?

回答

1

就让回调检查$ _FILES - 无需在$ _ POST

public function _check_file($file) 
{ 
      $this->load->library('upload'); 
      if (! $this->ci->upload->do_upload()) 
      { 
       $this->form_validation->set_message('_check_file', 'error'); 
       return FALSE; 
      } 
      else 
      { 
        return TRUE; 
      } 
} 

编辑复制:澄清 - 而验证库默认情况下只检查POST - 当您运行回调您可以访问文件 - 只需在您的回调中检查文件即可。这就是我所做的,它运作良好。

+0

如果您提供的字段在$ _POST中没有条目,验证是否会运行回调? – Hailwood

+0

好问题 - 答案是'是' - 因为我正在做这件事。尝试一下,你会看到 – Laurence

+0

啊,我只是假设它会尝试'聪明'而去,我们没有数据,所以没有任何意义可以验证它! – Hailwood