js如何实现图片预览

本文介绍两种使用JavaScript实现图片预览的方法:通过file对象转换为URL及base64格式地址。前者适用于多数情况,后者虽消耗性能但在特定场景下有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

很多新手玩家对于文件读取,图片读取都是只知皮毛,今天就给大家讲讲如何实现图片预览,实现方式有两种。

file对象转URL

为什么要转URl, 图片不能直接显示本地路径,会提示报错,所以我们要将file转成URL路径去赋值给img,直接上代码:

<html>
<head>
   <title>Title</title>
</head>
<body>
<hr/>
<br/>
<input type="file"  id="myFile1"/>
<img src="" id="preview_img" width="400px" height="400px" alt="">

<script src="${pageContext.request.contextPath}/js/jquery-1.12.3.js"></script>
<script>

   $("#myFile1").change(function () {
       //创建blob对象,浏览器将文件放入内存中,并生成标识
       var img_src = URL.createObjectURL($(this)[0].files[0]);
       //给img标检的src赋值
       document.getElementById("preview_img").src=img_src;
       //URL.revokeObjectURL(img_src);// 手动 回收,
   });
</script>
</body>
</html>

file对象转base64格式地址

这种做法相对消耗性能,不过对于数量较少的情况可以采用该办法,得到的结果为:
data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==
<html>
<head>
   <title>Title</title>
</head>
<body>
<hr/>
<br/>
<input type="file"  id="myFile1"/>
<img src="" id="preview_img" width="400px" height="400px" alt="">

<script src="${pageContext.request.contextPath}/js/jquery-1.12.3.js"></script>
<script>

   $("#myFile1").change(function () {
      var fileReader = new FileReader();

      fileReader.readAsDataURL($(this)[0].files[0]);
      //异步加载
      fileReader.onload =function (event) {
          $("#preview_img").attr("src",event.target.result);
      }
   });

</script>
</body>
</html>

总结

无论你选择用哪一种,都是不错的选择,毕竟网页端的局限性较大,无法和node环境相提并论,如果你支持nodejs,可以导入fs模块进行读取,那样是最完美的解决方案,希望对各位有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值