使用“上传”按钮将多个图像上传到页面时出现问题...

时间:2014-07-18 21:13:01

标签: javascript jquery html file-upload image-uploading

我有 Fiddle here ...

我已经完成了在上传按钮下方加载图片的功能,但是,如何将多个图像上传到同一页面?有三个地方我允许用户上传特定图片。

<div class="element-file" title="Do you want to add an image to the Accreditation Text?">
    <label class="title" style="font-weight: bold;">Add an image to the left of the Accreditation text<br>(Image will be resized to 100px by 100px)</label>

    <label class="medium" >
            <input type='file' onchange="readURL(this);" />
    </label>
        <p><strong>(Image will display below)</strong></p>
            <div style="max-width: 100px; height: auto; border:1px dashed black;">
                <img id="accred_image" src="accred" alt="" />
            </div>
</div>

并在此区域添加图片......

<div class="element-file" title="Do you want to add an image to the Accreditation Text?">
    <label class="title" style="font-weight: bold;">Would you like to add a logo image?</label>

    <label class="medium" >
            <input type='file' onchange="readURL(this);" />
    </label>
        <p><strong>(Image will display below)</strong></p>
                <div style="max-width: 140px; height: auto; border:1px dashed black;">
                    <img id="blah" src="" alt="" />
                </div>
</div>

这是我的javascript,但是当我上传图片时,它会在两个地方放置相同的图片。我认为这与我上传的课程有关,但创建新课程似乎没有任何帮助。

$("input").change(function(e) {

    for (var i = 0; i < e.originalEvent.srcElement.files.length; i++) {

        var file = e.originalEvent.srcElement.files[i];

        var reader = new FileReader();
        reader.onloadend = function() {
             $('#accred_image').attr('src', reader.result);
        }
        reader.readAsDataURL(file);        }
});

1 个答案:

答案 0 :(得分:2)

你需要找到更新的img。 试试这个:

$("input").change(function(e) {

    var elemIMG = $(this).parent().parent().find('img'); // find the img to update

    for (var i = 0; i < e.originalEvent.srcElement.files.length; i++) {

        var file = e.originalEvent.srcElement.files[i];

        var reader = new FileReader();
        reader.onloadend = function() {
              elemIMG.attr('src',reader.result); // update the img src
        }
        reader.readAsDataURL(file);        }
});