Intereting Posts
Разработка пакета Laravel 5 удалите новую строку при отправке запроса на сервер через Ajax Post с помощью JQuery Важность секретного ключа сеанса в веб-среде Express Web PHP: отображение страницы загрузки при выполнении скрипта php PHP mysql_real_escape_string () -> stripslashes (), оставляющий множественные слэши Могут ли выражения PHP PDO принимать имя таблицы или столбца в качестве параметра? Найти массив ключей в массиве объектов с учетом значения атрибута Не удается найти файл, созданный outfile в MySQL безопасные сеансы / файлы cookie в php С чего начать с запуска командной строки в PHP с помощью хоста CPanel DOM для разбора стены Facebook Laravel Eloquent: доступ к свойствам и имена динамических таблиц CodeMirror имеет контент, но не будет отображаться до нажатия клавиши Woocommerce – Предотвращение Добавление предметов из двух разных категорий в корзину Устранение неполадок "Предупреждение: session_start (): Не удается отправить ограничитель кеша сеанса – уже отправленные заголовки"

PHP – Загрузка нескольких изображений

Мне нужно загрузить несколько изображений через форму. Я думал, что сделаю это без проблем, но у меня есть.

Когда я пытаюсь сделать foreach и получить изображение по изображению, это не действует, как я надеялся.

HTML

<form method="post" action="" enctype="multipart/form-data" id="frmImgUpload"> <input name="fileImage[]" type="file" multiple="true" /> <br /> <input name="btnSubmit" type="submit" value="Upload" /> </form> 

PHP

 <?php if ($_POST) { echo "<pre>"; foreach ($_FILES['fileImage'] as $file) { print_r($file); die(); // I want it to print first image content and then die to test this out... //imgUpload($file) - I already have working function that uploads one image } } 

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

пример

 Array ( [0] => 002.jpg [1] => 003.jpg [2] => 004.jpg [3] => 005.jpg ) 

Что я хочу, чтобы он выводил

 Array ( [name] => 002.jpg [type] => image/jpeg [tmp_name] => php68A5.tmp [error] => 0 [size] => 359227 ) 

Итак, как я могу выбрать изображение по изображению в цикле, чтобы я мог загрузить их все?

Okey Я нашел решение, и именно так я это сделал, возможно, не лучшим образом, но он работает.

 foreach ($_FILES['fileImage']['name'] as $f) { $file['name'] = $_FILES['fileImage']['name'][$i]; $file['type'] = $_FILES['fileImage']['type'][$i]; $file['tmp_name'] = $_FILES['fileImage']['tmp_name'][$i]; $file['error'] = $_FILES['fileImage']['error'][$i]; $file['size'] = $_FILES['fileImage']['size'][$i]; imgUpload($file); $i++; } 

Solutions Collecting From Web of "PHP – Загрузка нескольких изображений"

Вы в основном задаете вопрос о том, как перестроить массив $_FILES для доступа к $_FILES их как одного массива.

 $index = 0; $field = 'fileImage'; $keys = array_keys($_FILES[$field]); $file = array(); foreach($keys as $key) { $file[$key] = $_FILES[$field][$key][$index]; } print_r($file); 

измените значение $index на значение, необходимое для выбора определенного файла.

этот массив сформирован по-другому

это что-то вроде этого:

 array ( 'name' => array ( [0] => 'yourimagename', [1] => 'yourimagename2', .... ), 'tmp_file' => array ( .... 

что shoud сделать это:

 foreach ($_FILES['fileImage']['name'] as $file) { print_r($file); die(); // I want it to print first image content and then die to test this out... //imgUpload($file) - I already have working function that uploads one image }