首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多张图片上传前添加图片预览

多张图片上传前添加图片预览
EN

Stack Overflow用户
提问于 2016-04-24 09:12:43
回答 2查看 457关注 0票数 0

我正在尝试为上传的每个图像添加一个图像预览。

我已经成功地显示了正在上传的图像名称列表,但我不知道如何添加图像预览。

这是我到目前为止所得到的:

代码语言:javascript
复制
$(document).on('change.bs.fileinput', '.fileinput', function(e) {
    var $this = $(this),
        $input = $this.find('input[type=file]'),
        $span = $this.find('.fileinput-filename');
        $ul = $("div").find('.upload-list');
    if($input[0].files !== undefined && $input[0].files.length > 1) {                
        $span.html('<span>'+$input[0].files.length+' files selected</span>'); 
        $ul.html('<label for="albumImages">Uploading Images</label><ul class="list-group"><li class="list-group-item">' + $.map($input[0].files, function(val) { return val.name; }).join('</li><li class="list-group-item">') + '</li></ul>');
        $('.upload-list').show();
        $('.album-inputs').show();
    } else {
        $('.upload-list').hide();
        $('.album-inputs').show();
    }
});

我想将图像添加到名称的左侧。有人能给我指引正确的方向吗?

EN

回答 2

Stack Overflow用户

发布于 2016-04-24 09:16:59

创建一个img标记,并将src和相应的照片放入其中

票数 0
EN

Stack Overflow用户

发布于 2016-04-26 07:27:29

基于@PatrickEvans的评论,我找到了一个解决方案。下面是我所做的:

代码语言:javascript
复制
window.URL    = window.URL || window.webkitURL;
var elBrowse  = document.getElementById("upload_image"),
    elPreview = document.getElementById("upload_list"),
    useBlob   = false && window.URL; // `true` to use Blob instead of Data-URL

function readImage (file) {
    var reader = new FileReader();

    reader.addEventListener("load", function () {
        var image  = new Image();           

        image.src = useBlob ? window.URL.createObjectURL(file) : reader.result;

        image.addEventListener("load", function () {
            var imageInfo = '<img src="'+image.src+'" class="img-rounded"/>'+' '+
                            file.name    +' '+                                  
                            image.width  +'×'+
                            image.height +' '+
                            file.type    +' '+
                            Math.round(file.size/1024) +'KB';
            //elPreview.appendChild( t );
            elPreview.insertAdjacentHTML("beforeend", '<ul class="list-group"><li class="list-group-item">'+imageInfo +'</li></ul>');
        });         

        if (useBlob) {
            window.URL.revokeObjectURL(file); // Free memory
        }
    });

    reader.readAsDataURL(file);

}

elBrowse.addEventListener("change", function() {
    var files  = this.files;
    var errors = "";

    if (!files) {
        errors += "File upload not supported by your browser.";
    }

    if(files.length > 1) { 
        alert(files.length);             
        $('.fileinput-filename').html('<span>'+files.length+' files selected</span>');
    }

    if (files && files[0]) {
        for(var i=0; i<files.length; i++) {
            var file = files[i];
            if ( (/\.(png|jpeg|jpg|gif)$/i).test(file.name) ) {
                readImage( file ); 
            } else {
                errors += file.name +" Unsupported Image extension\n";  
            }
        }
    }

    if (errors) {
        alert(errors); 
    }
}); 

我现在唯一的问题是,当我想要更改图像时,它会将原始图像保留在页面上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36818220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档