Файл и общие данные в форме

im попробуйте загрузить изображение из формы с помощью Codeigniter и Ajax. Я создаю следующую структуру формы:

<!--?php
$config = array('class' =--> "small-12 columns no-left-margins",'id'=>"form_$i", 'enctype'=>"multipart/form-data");
echo form_open_multipart('', $config); 
?>
<!-- file, text, and text area inputs -->
<!--?php 
echo form_close(); 
?-->
<a href="#" id="submit" value="upload" target="_blank">Guardar</a>

Запрос Ajax:

$("form").submit(function(e){
 e.preventDefault();
 var datos = $(this).serializeArray();
 $.ajax({
 url: 'guardarNuevoProducto',
 type: 'POST',
 data: datos
 });

});

И код действия контроллера:

// uploadPicture_rules is the index of the $config array that contains the picture //validation rules
$picRules = $this->config->item('uploadPicture_rules');

$this->load->library('upload', $picRules);

if(!$this->upload->do_upload()){
 echo json_encode(array('st'=>0, 'msg' => $this->upload->display_errors()));
}else{
 echo json_encode(array('st'=>0, 'msg' => 'Successfully Submiited'));
}

И у вас есть следующие правила проверки загрузки файлов:

$config['uploadPicture_rules'] = Array(
 'allowed_types' => 'gif|jpg|png', 
 'max_size' =>'100',
 'upload_path' => '/assets'
);

Все значения формы проверены правильно, но file_uploader говорит:

{"st": 0, "msg": "Вы не выбрали файл для загрузки."}

Есть идеи?. У меня неправильная конгругация?

1 ответ

form_open() изменить на form_open_multipart()

licensed under cc by-sa 3.0 with attribution.