使用js实现预览上传的图片

使用js实现预览上传的图片


首先,要有一个文件上传控件:

<input
  type="file"
  accept="image/*"
/>

type="file" 设置input为文件上传控件
accept="image/*" 限制文件类型为图片

接下来,给 input 绑定监听事件

 let input = document.getElementsByTagName('input')[0]
 input.addEventListener('change', function () {
   console.log('ok')
 })

当上传图片的时候就会触发监听事件,控制台打印ok。
在这里插入图片描述

然后我们可以通过 input 元素的files属性拿到一个 对象,这个对象是一个类似数组的对象,代表一组选中的文件,每个成员都是一个 File 实例。
修改 input 的监听函数:

input.addEventListener('change', function () {
  const { files } = this
  console.log(files)
})

效果:
在这里插入图片描述

然后我们取出files的第一个对象,通过URL.createObjectURL()方法用来为上传/下载的文件、流媒体文件生成一个 URL 字符串。这个字符串代表了File对象或Blob对象的 URL

input.addEventListener('change', function () {
  const { files } = this
  const f = files[0]
  console.log(URL.createObjectURL(f))
})

在这里插入图片描述

接下来我们创建一个 img 标签,并且将它的src设置为这个URL路径,然后再将 img 添加到页面

input.addEventListener('change', function () {
  const { files } = this
  const f = files[0]
  const img = document.createElement('img')
  img.src = URL.createObjectURL(f)
  img.style.width = '100px'
  document.body.append(img)
})

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值