Показать сообщение отдельно
  #1 (permalink)  
Старый 11.01.2018, 20:57
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Мультизагрузка картинок
Доброго дня всем

Есть форма и инпут типа 'file' с атрибутом 'multiple'. Также имется предпросмотр выбранных картинок.

Когда юзер выбирает сразу несколько изображений, то они все попадают в массив $_FILES и все работает нормально.

Но если юзер выбирает одну картинку, закрывает окно выбора, потом следующую и т.д., то в массив $_FILES попадает последняя. При этом в окне предпросмотра все они показываются нормально.

Такой вопрос - как их объединить, чтобы все работало так, как будто выбираются сразу несколько файлов?

Код предпросмотра
window.onload = function(){
        
    //Check File API support
    if(window.File && window.FileList && window.FileReader){
        var filesInput = document.getElementById("files");
        
        filesInput.addEventListener("change", function(event){
            
            var files = event.target.files; //FileList object
            var output = document.getElementById("result");
            
            for(var i = 0; i< files.length; i++){
                var file = files[i];                
                //Only pics
                if(!file.type.match('image'))
                  continue;
                
                var picReader = new FileReader();
                
                picReader.addEventListener("load",function(event){                    
                    var picFile = event.target;
                    var div = document.createElement("div");
                    div.className = 'img_preview';
                    div.innerHTML = "<img class='thumbnail' src='" + picFile.result + "'" +
                            "title='" + picFile.name + "'/>";                    
                    output.insertBefore(div,null); 
                    
                
                });                
                 //Read the image
                picReader.readAsDataURL(file);
            }                               
           
        });
    }
    else
    {
        console.log("Your browser does not support File API");
    }
}


Спасибо

Последний раз редактировалось LingVist, 11.01.2018 в 21:23.
Ответить с цитированием