2016-11-01 4 views
1

У нас есть html-форма с <input type="file" name="u_file" class="u_class" id="u_id">. Когда пользователь загружает изображение, он будет отображаться в нижнем поле перед отправкой формы.Как обрабатывать несколько загрузок изображений один за другим в php

<div class="preview-div"> 


</div>. 

То есть, когда пользователь загружает изображение, то тогда мы добавляем изображение в div по jquery.

$("#u_id").change(function(event){ 

    $(".preview-div").append(' <img style="" class="img-class" src="'+URL.createObjectURL(event.target.files[0])+'">'); 
    etc..... 

}); 

когда отправить форму, то она будет проверять

if($_FILES['u_file']['name'] !=""){ 

$uploadedfile = $_FILES['user_file']; 
$image_name=$_FILES['u_file']['name']; 

move_imageto_dir(); 
etc.... 

} 

здесь move_imageto_dir(); обычай функция, которую мы написали.

Но проблема в том, что он будет только проверять и перемещать последнее изображение. Как это решить?

То есть ($ _FILES [ «u_file»] содержит только последнее изображение загрузки. Что мы должны делать? Мы не можем использовать <input type='file' multiple>

Спасибо.

+0

так что вы загружаете несколько изображений или одно изображение, а также загрузить код функции move_imageto_dir() –

ответ

2

Имя ваши входные файлы в качестве массив

<input type="file" name="u_file[]" class="u_class" id="u_id"> 

$_FILES['u_file'] является массив Теперь

foreach ($_FILES['u_file'] as $file) { 
$image_name=$file['name']; 

move_imageto_dir(); 
etc.... 

} 
+0

хорошая идея. Я просто забыл об этом. Не могли бы вы обновить свой ответ с помощью цикла foreach. –

+0

Noe u_file - это массив. Когда я печатаю массив по какой-то причине, он принимает только последнее изображение. –

+0

Что вы подразумеваете под последним, обратите внимание, что вам нужны обозначения для всех входных файлов – madalinivascu

1

Вы можете использовать символ массива с именем файла

<input type="file" name="u_file[]" class="u_class" id="u_id"> 

Теперь в PHP вы можете получить файлы, как этот

$_FILES['file']['u_file'][0] 
$_FILES['file']['u_file'][1] 

Или вы можете использовать loop также

foreach ($_FILES['file']['u_file'] as $filename) {} 
Смежные вопросы