Codeigniter 2.0: загрузка различных файлов с вводами формы с разными именами

0

У меня есть несколько недель с этой проблемой, и я должен попросить вас о помощи, я использую Codeigniter 2.0 и загружаю библиотеку file_upload из file_upload, но по какой-то причине файлы не могут быть загружены и не отображаются любая ошибка, когда я do_upload функцию do_upload, вот немного кода, который у меня есть (у меня есть 9 файлов ввода, только один показан на этом примере, для вашего удобства).

Посмотреть

<?php
    $atributos = array(
        "id" => "form_anuncio",
        "name" => "form_anuncio"
    );
    echo form_open_multipart("usuarios/GrabarAnuncio",$atributos);
?>
<div class="form-group">

    <label for="logotipo">Logotipo
        <input type="file" name="logotipo" id="logotipo" placeholder="Logotipo" />
    </label>

    <?php if (($datos_usuario["Logotipo"] != NULL) ||  ($datos_usuario["Logotipo"] != "")) { ?>
        <img src="<?php echo base_url(); ?>images/logos/<?php echo $datos_usuario["idusuario"] . "_" . $datos_usuario["Logotipo"] ?>" alt="Logotipo Usuario" class="img-responsive" />
    <?php } ?>
</div>

<div class="form-group">
    <input type="submit" name="GuardarAnuncio" id="GuardarAnuncio" value="Guardar Anuncio" />
</div>

<?php echo form_close(); ?>

контроллер

public function GrabarAnuncio()
{
    $this->load->model('Usuarios_model');
    $this->Usuarios_model->Grabar_anuncio();
    $this->miperfil();
}

Модель (просто экстракт)

function Grabar_anuncio()
{
     /* Lot of code  */
        $directorio = './images/';
        $directorio1 = './images/logos/' . $ID . '/';
        if (!is_dir($directorio1)) {
            mkdir($directorio1, 0777, true);
        }
        $directorio2 = './images/fotos/' . $ID . '/';
        if (!is_dir($directorio2)) {
            mkdir($directorio2, 0777, true);
        }
        $directorio3 = './images/galerias/' . $ID . '/';
        if (!is_dir($directorio3)) {
            mkdir($directorio3, 0777, true);
        }

        if ($_FILES['logotipo']['name'] != "")
        {
            $config['upload_path'] = $directorio1;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '200';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';
            $config['overwrite'] = true;
            $config['file_name'] = $_FILES['logotipo']['name'];

            $this->upload->initialize($config);

            if ( ! $this->upload->do_upload('logotipo'))
            {
                //Never Enter Here
                $serverError = true;
                print_r($this->upload->display_errors());
                exit();
            }
        }
     /* More code  */
}

Если вам нужна более подробная информация, вам нужно просто спросить, я надеюсь, вы можете мне помочь

ОБНОВИТЬ:

Это то, что я получаю, когда я делаю var_dump перед загрузкой

array (size=9)
  'logotipo' => 
    array (size=5)
      'name' => string 'grinch1.png' (length=11)
      'type' => string 'image/png' (length=9)
      'tmp_name' => string 'G:\wamp\tmp\php5E16.tmp' (length=23)
      'error' => int 0
      'size' => int 58066
  'FotosLocalizacion1' => 
    array (size=5)
      'name' => string 'anviz1.jpg' (length=10)
      'type' => string 'image/jpeg' (length=10)
      'tmp_name' => string 'G:\wamp\tmp\php5E46.tmp' (length=23)
      'error' => int 0
      'size' => int 219877
  'FotosLocalizacion2' => 
    array (size=5)
      'name' => string 'anviz2.jpg' (length=10)
      'type' => string 'image/jpeg' (length=10)
      'tmp_name' => string 'G:\wamp\tmp\php5E47.tmp' (length=23)
      'error' => int 0
      'size' => int 172127
  'FotosLocalizacion3' => 
    array (size=5)
      'name' => string 'anviz3.jpg' (length=10)
      'type' => string 'image/jpeg' (length=10)
      'tmp_name' => string 'G:\wamp\tmp\php5E57.tmp' (length=23)
      'error' => int 0
      'size' => int 136494
  'FotosLocalizacion4' => 
    array (size=5)
      'name' => string '' (length=0)
      'type' => string '' (length=0)
      'tmp_name' => string '' (length=0)
      'error' => int 4
      'size' => int 0
  'galeria1' => 
    array (size=5)
      'name' => string '' (length=0)
      'type' => string '' (length=0)
      'tmp_name' => string '' (length=0)
      'error' => int 4
      'size' => int 0
  'galeria2' => 
    array (size=5)
      'name' => string '' (length=0)
      'type' => string '' (length=0)
      'tmp_name' => string '' (length=0)
      'error' => int 4
      'size' => int 0
  'galeria3' => 
    array (size=5)
      'name' => string '' (length=0)
      'type' => string '' (length=0)
      'tmp_name' => string '' (length=0)
      'error' => int 4
      'size' => int 0
  'galeria4' => 
    array (size=5)
      'name' => string '' (length=0)
      'type' => string '' (length=0)
      'tmp_name' => string '' (length=0)
      'error' => int 4
      'size' => int 0

ОБНОВЛЕНИЕ 2

делая это после инструкции if (вне скобки): die (var_dump ($this-> upload-> data()));

array (size=14)
  'file_name' => string 'grinch1.png' (length=11)
  'file_type' => string 'image/png' (length=9)
  'file_path' => string 'G:/wamp/www/serviciosycomprasx/images/logos/127/' (length=48)
  'full_path' => string 'G:/wamp/www/serviciosycomprasx/images/logos/127/grinch1.png' (length=59)
  'raw_name' => string 'grinch1' (length=7)
  'orig_name' => string 'grinch1.png' (length=11)
  'client_name' => string 'grinch1.png' (length=11)
  'file_ext' => string '.png' (length=4)
  'file_size' => float 56.71
  'is_image' => boolean true
  'image_width' => int 280
  'image_height' => int 280
  'image_type' => string 'png' (length=3)
  'image_size_str' => string 'width="280" height="280"' (length=24)
  • 0
    Вам может понадобиться использовать for ($ i = 0; $ i <; $ i ++) при загрузке.
  • 0
    @ mustang83 что ты имеешь ввиду? У вас есть пример?
Показать ещё 6 комментариев
Теги:
codeigniter
file-upload
upload
codeigniter-2

1 ответ

1
Лучший ответ

Изменить это

function Grabar_anuncio()
{
     /* Lot of code  */
        $directorio = './images/';
        $directorio1 = './images/logos/' . $ID . '/';
        if (!is_dir($directorio1)) {
            mkdir($directorio1, 0777, true);
        }
        $directorio2 = './images/fotos/' . $ID . '/';
        if (!is_dir($directorio2)) {
            mkdir($directorio2, 0777, true);
        }
        $directorio3 = './images/galerias/' . $ID . '/';
        if (!is_dir($directorio3)) {
            mkdir($directorio3, 0777, true);
        }

        if ($_FILES['logotipo']['name'] != "")
        {
            $config['upload_path'] = $directorio1;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '200';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';
            $config['overwrite'] = true;
            $config['file_name'] = $_FILES['logotipo']['name'];

            $this->upload->initialize($config);

            if ( ! $this->upload->do_upload('logotipo'))
            {
                //Never Enter Here
                $serverError = true;
                print_r($this->upload->display_errors());
                exit();
            }
        }
     /* More code  */
}

Для этого

function Grabar_anuncio()
{
     /* Lot of code  */
        $directorio = './images/';
        $directorio1 = './images/logos/' . $ID . '/';
        if (!is_dir($directorio1)) {
            mkdir($directorio1, 0777, true);
        }
        $directorio2 = './images/fotos/' . $ID . '/';
        if (!is_dir($directorio2)) {
            mkdir($directorio2, 0777, true);
        }
        $directorio3 = './images/galerias/' . $ID . '/';
        if (!is_dir($directorio3)) {
            mkdir($directorio3, 0777, true);
        }

        if ($_FILES['logotipo']['name'] != "")
        {
            $config['upload_path'] = $directorio1;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '200';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';
            $config['overwrite'] = true;
            $config['file_name'] = $_FILES['logotipo']['name'];

            $this->upload->initialize($config);

            if ( ! $this->upload->do_upload('logotipo'))
            {
                //Never Enter Here
                $serverError = true;
                print_r($this->upload->display_errors());
                exit();
            } else { 
                $this->upload->data();    
            }
        }
     /* More code  */
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню