2016-10-25 2 views
0

пытаюсь загрузить несколько изображений с помощью jquery. но одни и те же изображения не загружаются. как решить эту проблему, пожалуйста, проверьте мою скрипкуJQuery image загрузить same image not uploading issue

$images = $('.imageOutput') 
$(".imageUpload").change(function(event){ 
    readURL(this); 
}); 
function readURL(input) { 
    if (input.files && input.files[0]) { 
    $.each(input.files, function() { 
     var reader = new FileReader(); 
     reader.onload = function (e) {   
     $images.append('<img src="'+ e.target.result+'" />') 
     } 
     reader.readAsDataURL(this); 
    }); 
    } 
} 

click here for jsfiddle

+0

http://jsfiddle.net/BrianDillingham/q9Lx1Lss/ –

+2

Не могу воспроизвести. – guest271314

+0

любая идея решить эту проблему? –

ответ

1

Если вы попытаетесь загрузить тот же файл, значение ввода файла не изменится. Попробуйте распечатать его:

$('.button-2').click(function(){ 
     console.log($(".list .upload-file").val()) 
     return false; 
    }); 

Или использовать эту Если вы хотите загрузить в два раза, ввод значения ясно файл

$('input[type="file"]').val(null); 
http://jsfiddle.net/cfddream/BF8Gc/ 
1

Просто установите значение вашего входной файл в null как только вы закончите с выборкой по URL, как показано ниже:

http://jsfiddle.net/q9Lx1Lss/23/

$images = $('.imageOutput') 


$(".imageUpload").change(function(event){ 
    readURL(this); 
    this.value = null; //setting the value to null 
}); 



function readURL(input) { 

    if (input.files && input.files[0]) { 

     $.each(input.files, function() { 
      var reader = new FileReader(); 
      reader.onload = function (e) {   
       $images.append('<img src="'+ e.target.result+'" />') 
      } 
      reader.readAsDataURL(this); 
     }); 

    } 
} 

У вас возникла проблема, потому что во второй раз после выбора того же изображения, change не получалось уволить из-за того же выбора файла. Теперь, после добавления кода this.value = null;, мы очищаем предыдущий выбор файла и, следовательно, каждый раз, когда change событие будет исполнено независимо от того, выбираете ли вы тот же файл или другой.

+0

Хм, я думаю, у нас такая же проблема. Вам не кажется, что что-то вроде 'if (input.files && input.files [0])) {$ ('. ImageOutput'). Empty();' то, что ему нужно? – Leron

+0

@Leron - '$ ('. ImageOutput'). Empty();' и 'this.value = null;' то же самое. Только это; такой код необходимо выполнить после '$ .each (input.files', иначе мы не получим файл, выбранный пользователем. – vijayP

+0

var f = $ ('. imageOutput'). prop (" files ") [i] [ 'name']; var reader = new FileReader(); reader.readAsDataURL (это), это мой код, значение чтения iset пусто, но не получается output –