在上传之前预览多个图像

Posted

技术标签:

【中文标题】在上传之前预览多个图像【英文标题】:Preview an multiple images before it is uploaded 【发布时间】:2019-09-04 13:29:21 【问题描述】:

我希望能够在上传多张图片之前预览它,我找到了解决方案here,它解释了如何做到这一点,但只针对一张图片。

我试试这个:

function readURL(input)

    if (input.files && input.files[0])
    
        for (var i = 0, f; f = files[i]; i++) 
            var reader = new FileReader();

            reader.onload = function (e) 
                $('#blah')
                    .attr('src', e.target.result)
                    .width(200)
                    .height(150);
            ;

            reader.readAsDataURL(f);
        
    

另外,将输入更改为多个

<input type='file' multiple onchange="readURL(this);" />
<img id="blah" src="#"  />

不幸的是,无法正常工作! 如何处理多张图片?

【问题讨论】:

使用所选图像的 src 循环添加图像标签 @SyedMehtabHassan,我更新了我的问题,请看一下。它不起作用。 【参考方案1】:

如果运气好,这将帮助您解决问题 0 在测试中似乎对我来说可以正常工作

<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title>multiple files preview</title>
    </head>
    <body>
        <form method='post' enctype='multipart/form-data'>
            <input type='file' name='images[]' multiple />
            <input type='submit' />
            <output></output>
        </form>
        <script>
            let out=document.querySelector('output');
            let oFile=document.querySelector('form > input[type="file"]');
            oFile.addEventListener('change', function(e)
                let oFiles=this.files;
                let oReader;
                for( i=0; i < oFiles.length; i++ )
                    oReader = new FileReader();
                    oReader.addEventListener( 'load', e=>
                        let img=new Image();
                            img.src=e.target.result;
                        out.appendChild( img )
                    );
                    oReader.readAsDataURL( oFiles[i] )
                
            );
        </script>
    </body>
</html>

【讨论】:

以上是关于在上传之前预览多个图像的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在通过表单上传之前预览本地图像?

上传前显示图像预览

在上传之前预览图像

在使用 FileReader 上传之前预览图像,旋转图像

在phonegap中上传之前的图像预览

在rails和carrierwave中上传之前显示图像预览的最佳方式