2015-01-02 4 views
0

Когда я загружаю изображение моего файла, это !$this->upload->do_upload($name) не будет работать.Получить имя из файла ввода

Это не поднимая мое поле name="banner_image[ + image_row + ]['image']"

image_row генерирует номер идентификатора строки.

Var свалка

array(1) { ["banner_image">=> array(5) { ["name">=> array(1) { [1]=> array(1) { ["image">=> string(10) "10-dec.jpg" } } ["type">=> array(1) { [1]=> array(1) { ["image">=> string(10) "image/jpeg" } } ["tmp_name">=> array(1) { [1]=> array(1) { ["image">=> string(24) "C:\Xampp\tmp\phpC1F6.tmp" } } ["error">=> array(1) { [1]=> array(1) { ["image">=> int(0) } } ["size">=> array(1) { [1]=> array(1) { ["image">=> int(261032) } } } } 

О функции do_upload контроллера, как я могу сделать это подобрать имя поля правильно?

функция контроллера

function do_upload() { 
    $config['upload_path'] = './upload/'; 
    $config['allowed_types'] = 'gif|jpg|png|jpeg'; 
    $config['max_size'] = '3000'; 
    $config['max_width'] = '*'; 
    $config['max_height'] = '*'; 

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

    $this->upload->initialize($config); 
    // this below is same as whats on set_rules 
    $name = "banner_image[' + image_row + '][image]"; // + image_Row + is id as shown on view 

    if (!$this->upload->do_upload($name)) { 

     $this->form_validation->set_message('do_upload', $this->upload->display_errors()); 
     return false; 

    } else { 

     return true; 

    } 
} 

Посмотреть

<script type="text/javascript"> 
var image_row = <?php echo $image_row; ?>; 


function addImage() { 
    html = '<tr id="image-row' + image_row + '">'; 
    html += '<td class="text-left">'; 
    <?php foreach ($languages as $language) { ?> 
    html += '<div class="input-group" style="margin-bottom: 20px;">'; 
    html += '<span class="input-group-addon"><img src="<?php echo base_url("image/flags");?>/<?php echo $language["image"]; ?>"></span><input type="text" name="banner_image[' + image_row + '][banner_image_description][<?php echo $language["language_id"]; ?>][title]" value="" placeholder="Name Of Banner" class="form-control" />'; 
    html += '</div>'; 
    <?php } ?> 
    html += '</td>'; 
    html += '<td class="text-left">'; 
    html += '<input type="text" name="banner_image[' + image_row + '][link]" value="" placeholder="Website Page Url" class="form-control" />'; 
    html += '</td>'; 
    html += '<td class="text-left">'; 
    html += '<div class="imagePreview" class="img-thumbnail"></div>'; 
    html += '<input id="idFile" type="file" name="banner_image[' + image_row + '][image]" onchange="previewImage(this,[256],4);" />'; 
    html += '</td>'; 
    html += '<td class="text-left">'; 
    html += '<input type="text" name="banner_image[' + image_row + '][sort_order]" value="" placeholder="Sort Order" class="form-control">'; 
    html += '</td>'; 
    html += '<td class="text-left">'; 
    html += '<button type="button" onclick="$(\'#image-row' + image_row + '\').remove();" data-toggle="tooltip" title="Remove" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button>'; 
    html += '</td>'; 
    html += '</tr>'; 
    $('#images tbody').append(html); 
    image_row++; 
} 

</script> 

ответ

0

Я предлагаю вам обратиться класс загрузки файла Codeigniter UserGuide. https://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html

Вы использовали текст тип ввода в форме. Используйте файл тип ввода. Просто дайте вариант.

В любом случае ссылка проведет вас через простую загрузку файлов.

Чтобы получить имя файла для загрузки файла, вы можете использовать его в контроллере. $ filename = $ this-> upload-> data ('file_name');

После этого от контроллера вы можете отправить его в любую модель.

Надеюсь, это поможет.

+0

Я все знаю, что добавил свою функцию к своему сообщению. –

0

попробовать это изменение этой линии

name="banner_image[ + image_row + ]['image']" 

в

name="banner_image[ '+ image_row +' ]['image']" 

вы пропустили ''

и в сценарии

html = '<tr id="image-row' + image_row + '">'; 

в

html += '<tr id="image-row' + image_row + '">'; 
+0

Нет, не работает, это мешает мне добавить строку. Все еще продолжает говорить, что вы не выбрали файл для загрузки. –

Смежные вопросы