html5 上传图片 插件-通过HTML5 FileReader实现上传图片的预览功能

2023-08-26 0 10,121 百度已收录

在将图片上传到服务器之前,我们希望能够预览要上传的图片。 该功能可以通过HTML5的FileReader()方法来实现。

FileReader 是 HTML5 文件 API 的一部分。 它实现了异步文件读取机制。 您可以将 FileReader 视为 XMLHttpRequest,不同之处在于它读取文件系统而不是远程服务器。 为了读取文件中的数据html5 上传图片 插件html5 上传图片 插件,FileReader 提供了以下技术。

通过readAsDataURL(file)方法,我们可以将读取到的图像数据以URI的形式展示在页面上。

例如,下面是上传图片预览的示例:

上例中的HTML代码如下:


下面是结合jQuery和FileReader实现上传图片预览的代码:

$("#fileUpload").on('change', function () {
    if (typeof (FileReader) != "undefined") {
        var image_holder = $("#image-holder");
        image_holder.empty();
        var reader = new FileReader();
        reader.onload = function (e) {
            $("", {
                "src": e.target.result,
                "class": "thumb-image"
            }).appendTo(image_holder);
        }
        image_holder.show();
        reader.readAsDataURL($(this)[0].files[0]);
    } else {
        alert("你的浏览器不支持FileReader.");
    }
});

实现预览多张图片的效果

我们先看一下效果。 下面是一个反例,可以预览多张上传的图片。

上面我们已经可以预览上传的图片了。 为了达到预览多张图片的效果,必须在文件上传标签中添加多个属性,使其可以选择多张图片。


然后改一下里面的jQuery代码,用循环遍历所有要上传的图片,最后单独显示。

$("#fileUpload").on('change', function () {
   //获取上传文件的数量
   var countFiles = $(this)[0].files.length;
   var imgPath = $(this)[0].value;
   var extn = imgPath.substring(imgPath.lastIndexOf('.') + 1).toLowerCase();
   var image_holder = $("#image-holder");
   image_holder.empty();
   if (extn == "gif" || extn == "png" || extn == "jpg" || extn == "jpeg") {
       if (typeof (FileReader) != "undefined") {
           // 循环所有要上传的图片
           for (var i = 0; i < countFiles; i++) {
               var reader = new FileReader();
               reader.onload = function (e) {
                   $("", {
                       "src": e.target.result,
                           "class": "thumb-image"
                   }).appendTo(image_holder);
               }
               image_holder.show();
               reader.readAsDataURL($(this)[0].files[i]);
           }
       } else {
           alert("你的浏览器不支持FileReader!");
       }
   } else {
       alert("请选择图像文件。");
   }
});

HTML5 FileReader 在 Internet Explorer 10+、FireFox、Chrome 和 Opera 浏览器中运行良好。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 html5 html5 上传图片 插件-通过HTML5 FileReader实现上传图片的预览功能 https://www.wkzy.net/game/157331.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务