嗨我上传了带验证的文件。它完全正常,直到我把ajax放在表单验证上,它现在无法读取$_FILES['filename']
变量..
它伴随着错误
ERROR - 2016-07-18 09:19:52 --> Severity: Notice --> Undefined index: userfile
我有这个表格
echo form_open_multipart('PDFuploads/upload_pdf/'.$this->uri->segment(3) ,array('id' => 'form-user'));
和我的ajax是,
$('#form-user').submit(function(e) {
e.preventDefault();
var me = $(this);
// perform ajax
$.ajax({
url: me.attr('action'),
type: 'post',
data: me.serialize(),
dataType: 'json',
success: function(response) {
if (response.success == true) {
// if success we would show message
// and also remove the error class
$('#the-message').append('<div class="alert alert-success">' +
'<span class="glyphicon glyphicon-ok"></span>' +
' Data has been saved' +
'</div>');
$('.form-group').removeClass('has-error')
.removeClass('has-success');
$('.text-danger').remove();
// reset the form
me[0].reset();
// close the message after seconds
$('.alert-success').delay(500).show(10, function() {
$(this).delay(3000).hide(10, function() {
$(this).remove();
});
})
}
else {
$.each(response.messages, function(key, value) {
var element = $('#' + key);
element.closest('div.form-group')
.removeClass('has-error')
.addClass(value.length > 0 ? 'has-error' : '')
.find('.text-danger')
.remove();
element.after(value);
});
}
}
});
});
我的控制器是
public function upload_pdf(){
$data = array('success' => false, 'messages' => array());
$this->form_validation->set_rules('DOC_NAME', 'Document Name' ,'trim|required');
$this->form_validation->set_rules('DOC_TYPE', 'Document Type' ,'trim|required');
$this->form_validation->set_rules('DOC_DATE', 'Date' ,'trim|required');
$this->form_validation->set_rules('userfile', 'Document', 'callback_pdf_upload');
if($this->form_validation->run($this) == TRUE){
$this->form_validation->set_rules('userfile', 'Document', 'callback_pdf_upload2');
$data['success'] = true;
if($this->form_validation->run($this) == TRUE){
$file_data = $this->upload->data();
$url = base_url().'uploads/pdf/'.$file_data['file_name'];
$this->PDFuploads_Model->insert($url);
$data['success'] = true;
}else{
foreach ($_POST as $key => $value) {
# code...
$data['messages'][$key] = form_error($key);
}
}//second validation
$data['success'] = true;
}else{
foreach ($_POST as $key => $value) {
# code...
$data['messages'][$key] = form_error($key);
}
//$this->add_view();
}// first
echo json_encode($data);
}// end function
public function pdf_upload(){
if($_FILES['userfile']['size'] != 0){
return true;
}else{
$this->form_validation->set_message('pdf_upload', "<p class='text-danger'><i class=' fa fa-times-circle-o' ></i> No file selected</p>");
return false;
}// end if else
}
public function pdf_upload2(){
$config['upload_path'] = './uploads/pdf';
$config['allowed_types'] = 'pdf';
//$config['file_name'] = 'userimage_'.substr(md5(rand()),0,7);
//$config['overwrite'] = false;
$config['max_size'] = '5120';
$this->load->library('upload', $config);
if(!$this->upload->do_upload('userfile')){
$this->form_validation->set_message('pdf_upload2', $this->upload->display_errors('<p class="text-danger"><i class="fa fa-times-circle-o"></i> ', '</p>'));
return false;
}else{
$this->upload->data('userfile');
return true;
}//end if else
}
我该如何解决这个错误?