JS获取本地文件并预览

本文介绍了如何在前端实现本地文件预览,特别是图片和视频。通过创建input框接收文件,使用FileReader对象读取文件内容。针对不同类型的文件(如文本、视频、图像),采用不同的读取和处理方式,将文件转换为可预览的地址。最后,利用onload事件获取到的地址加载到对应的标签中,实现预览效果。
摘要由CSDN通过智能技术生成

        最近在写后台的过程中考虑到给用户添加预览效果,增加用户体验,尤其是图片和视频,后台传来的就直接用就可以预览了,但用户上传时的文件怎么获取本地文件并预览呢?

        首先那些/C/......之类的都是本地的假地址,没法直接访问打开,(emm我想可能是因为用户协议之类的没法直接获取本地数据来用),那就需要一些方法来获取本地文件的可操作地址。

        1.首先html先创建一个input框接收文件

<input type="file">

        2.然后js获取,并监听当input框内填入文件时响应,然后创建正则函数(后面用),创建filereader对象用来获取文件对象并读取,然后获取文件的地址基于b64,这里用正则表达式区分一下视频文件和图形文件,图像文件直接传就行,视频文件需要转为aBlob对象再创建个新的filereader对象再传入,不然可能会报错

Uncaught DOMException: Failed to execute 'readAsDataURL' on 'FileReader': The object is already busy reading Blobs.

(如果直接加的话会报这个错,我也不知道为啥QWQ,回去研究一手)

var input = document.querySelectorAll('input[type=file]')
    inp
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值