Intereting Posts
модульное тестирование и статические методы как вызвать файл PHTML на странице CMS Magento Что должен представлять пакет в Symfony2? : Есть ли способ сохранить текст в формате Rich Text в таблице MySQL? 500 – Произошла ошибка! Функция DB сообщает об ошибках при добавлении новой статьи в Joomla! Каков надлежащий способ использования, включая скобки или без скобок в php PHP получает код ответа HTTP-заголовка без cURL Как получить токен доступа без вмешательства пользователя для известной учетной записи с помощью API Google Youtube v3? mysql_connect возвращает «Не удается подключиться к локальному серверу MySQL через сокет» при удаленном соединении с хостом? Как я могу извлечь данные из таблицы HTML в PHP? Как поймать идентификатор из sfUser? Получить начальную и конечную временную метку unix для данного месяца и года в php Добавление общей суммы mysql_num_rows в цикл while Предупреждение: session_start (): не удается отправить cookie сеанса – уже отправленные заголовки (вывод запущен в Методы отслеживания электронной почты в php

Codeigniter & HTML5 – попытка одновременного загрузки нескольких изображений

Взгляд выглядит так

<?=form_open_multipart('upload/process');?> <input type="file" multiple="multiple" name="userfile[]" id="userfile" /> <?=form_submit('upload', 'Upload');?> <?=form_close();?> 

я хочу, чтобы пользователь мог загружать сразу несколько изображений одновременно. после загрузки я хочу сделать запись деталей изображения в базе данных и, наконец, переместить изображение в папку uploads.

У меня есть базовые знания в области кодирования

ps: Я не хочу использовать загрузку или аналогичные загрузки изображений. пытаясь сохранить его как можно более легким

Обновление это тот тип массива, который я получаю, когда я пытаюсь var_dump ($ _ FILES ['userfile']). какой цикл я должен использовать для разделения данных соответствующих изображений.

  array 'name' => array 0 => string '01.jpg' (length=6) 1 => string '1 (26).jpg' (length=10) 'type' => array 0 => string 'image/jpeg' (length=10) 1 => string 'image/jpeg' (length=10) 'tmp_name' => array 0 => string 'C:\wamp\tmp\php2AC2.tmp' (length=23) 1 => string 'C:\wamp\tmp\php2AD3.tmp' (length=23) 'error' => array 0 => int 0 1 => int 0 'size' => array 0 => int 409424 1 => int 260343 

Я столкнулся с этой проблемой. Данные $_FILES отправляются в различную структуру (из-за атрибута multiple="" ), поэтому кодигнитор не может ее обработать. Подготовьте это перед процессом загрузки:

 $arr_files = @$_FILES['userfile']; $_FILES = array(); foreach(array_keys($arr_files['name']) as $h) $_FILES["file_{$h}"] = array( 'name' => $arr_files['name'][$h], 'type' => $arr_files['type'][$h], 'tmp_name' => $arr_files['tmp_name'][$h], 'error' => $arr_files['error'][$h], 'size' => $arr_files['size'][$h]); 

Затем в функции цикла используйте это:

 $this->load->library('upload'); $arr_config = array( 'allowed_types' => 'gif|jpg|png', 'upload_path' => 'url_path/'); foreach(array_keys($_FILES) as $h) { // Initiate config on upload library etc. $this->upload->initialize($arr_config); if ($this->upload->do_upload($h)) { $arr_file_data = $this->upload->data(); } } 

Объяснение:
Я просто меняю структуру $_FILES на общую структуру, которая отправляется по умолчанию <input type="file" /> и запускает цикл, извлекая все их имена ключей.

Цикл, в котором вы нуждаетесь:

 for($i=0; $i<count($_FILES['name']); $i++){ if ($_FILES['error'][$i] == 0) { //do your stuff here, each image is at $_FILES['tmp_name'][$i] } } 

Обратите внимание, что не используется класс загрузки CI, но простой PHP, с которым я обычно привык работать, а не с классом CI.

Проверьте этот класс для загрузки нескольких файлов https://github.com/stvnthomas/CodeIgniter-Multi-Upload

Это помогло мне.