моя проблема заключается в том, что я вставляю несколько изображений в одну строку с запятой, разделенной в codeginter - PullRequest
0 голосов
/ 25 апреля 2018

Я так пытался вставить в несколько изображений, это прекрасно работает, но то, что я хочу, чтобы несколько изображений вставлялись в базу данных с одной строкой, означает разделение запятой, например, id =4 и img = img1,img2,img3,img4, я хочу вставить в одну строку в Codeginter, но не знаю, как использовать эту функцию $data= implode(",",$userfile); СПАСИБО продвигает брат

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

function blog_img_new()
{
    $imgtest = $this->blog->image_get_test();
    $this->template->load_sub('imgtest', $imgtest);
    $this->template->load('admin/test-imag');
}

function blog_img()
{
    $number_of_file = sizeof($_FILES['userfile']['tmp_name']);
    $file = $_FILES['userfile'];

    // Faking upload calls to $_FILE
    for ($i = 0; $i < $number_of_file; $i++) :

        $_FILES['userfile']['name']     = $file ['name'][$i];
        $_FILES['userfile']['type']     = $file ['type'][$i];
        $_FILES['userfile']['tmp_name'] = $file ['tmp_name'][$i];
        $_FILES['userfile']['error']    = $file ['error'][$i];
        $_FILES['userfile']['size']     = $file ['size'][$i];

        $config['upload_path'] = './photo/uploads'; //The path where the image will be save
        $config['allowed_types'] = 'gif|jpg|png';
        $this->load->library('upload', $config);

        $this->upload->initialize($config);
        $this->upload->do_upload('userfile');

        $data = $this->upload->data();

        $file_name[] = $this->upload->data();

        $data = array(
            'userfile'   => $this->upload->data('file_name'),
        );

        $data= implode(",",$userfile);
        $this->blog->blog_img($data);

            //redirect('/admin/blog/img/insert');
    endfor;

}

это моя модель функции

function blog_img($data)
{
    $userfile = addslashes($data['userfile']);
    return $this->db->query("INSERT INTO filename_img (userfile) VALUES ('$userfile')");
}

просмотр страницы

<input type="file"  name="userfile[]" id="userfile" multiple >

1 Ответ

0 голосов
/ 25 апреля 2018

Вы должны переместить функцию вставки из цикла.В цикле вы должны назначить каждое имя файла массиву, который вы можете взорвать.

    function blog_img()
    {
        $number_of_file = sizeof($_FILES['userfile']['tmp_name']);
        $file = $_FILES['userfile'];

        $files = array();

        // Faking upload calls to $_FILE
        for ($i = 0; $i < $number_of_file; $i++) :

            $_FILES['userfile']['name']     = $file ['name'][$i];
            $_FILES['userfile']['type']     = $file ['type'][$i];
            $_FILES['userfile']['tmp_name'] = $file ['tmp_name'][$i];
            $_FILES['userfile']['error']    = $file ['error'][$i];
            $_FILES['userfile']['size']     = $file ['size'][$i];

            $config['upload_path'] = './photo/uploads'; //The path where the image will be save
            $config['allowed_types'] = 'gif|jpg|png';
            $this->load->library('upload', $config);

            $this->upload->initialize($config);
            $this->upload->do_upload('userfile');

            //$data = $this->upload->data();

            $files[] = $this->upload->data('file_name');

            //$data= implode(",",$userfile);
            //$this->blog->blog_img($data);

                //redirect('/admin/blog/img/insert');
        endfor;

        $data= implode(",",$files);
        $this->blog->blog_img($data);
}

Модель с использованием QB:

function blog_img($files)
{
    $this->db->set('userfile', $files);
    return $this->db->insert('filename_img');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...