Codeigniter控制器检测ajax文件上传

时间:2013-03-12 09:39:57

标签: ajax codeigniter file-upload

我已经设置了我的Codeigniter应用程序,以便我可以通过Ajax上传文件。我按照本教程http://net.tutsplus.com/tutorials/javascript-ajax/how-to-upload-files-with-codeigniter-and-ajax/

进行了操作

检查我的原始表单以查看是否已调用ajax请求,如果没有,则会显示回退CI表单验证/错误消息。

我使用 - $this->input->is_ajax_request()

进行了检查

我的代码看起来像这样:

if($this->input->is_ajax_request()){
   // process ajax form data
} else {
   if($this->form_validation->run() == FALSE) { 
      $data['success'] = 0;
      $data['errors'] = validation_errors();
   } else {
      $data['success'] = 1;
   }
   $this->load->view('form', $data);
}

在做了一些调查之后,我发现我无法应用相同的技术,因为它实际上不是ajax请求,因此我不确定如何使用这种方法。如果有人能指出我正确的方向,那将是伟大的。我不喜欢它完全依赖于ajax,我喜欢有一个后备选项。我在评论中注意到有人在他们的ajaxfileupload.js中设置了一个CSFR cookie,但说实话我对js不太热,所以我不知道从哪里开始。提前谢谢。

1 个答案:

答案 0 :(得分:1)

在您的AJAX请求中以及其他所有可以发布键/值的内容:

ajax : 1

然后在你的控制器中:

if( $this->input->post('ajax') == 1 ) {
  // process ajax form data
}
else
{
  // form validation
}

希望这有帮助。