JS-Browser-Load-Local-File

浏览器端怎么载入本地文件?

  • 首先要创造一个input元素,click它触发选择文件的弹窗
  • 然后给它一个监听,选择文件change的时候执行触发动作
  • 触发动作使用FileReader读取文件,再触发读取成功后的内容操作

主要代码

let file_input = document.createElement('input')
        file_input.setAttribute('accept', ".mdr")
        file_input.addEventListener("change", (evt) => {
            let f = evt.target.files ? evt.target.files[0] : null
            if (!f) return
            var reader = new FileReader()
            reader.onload = function (e) {
                var contents = e.target.result
                var xobj = null
                try {
                    xobj = JSON.parse(contents)
                    console.log('xobj', xobj)
                } catch (err) {
                    console.log('>LoadRules:ERR:', err.message)
                }
                if (xobj) {
                    that.setState({
                        xobj: xobj
                    })
                }            
            }
            reader.readAsText(f);
        }, false)
        file_input.type = 'file'
        file_input.click()

注意,虽然设置了accept属性限定文件类型,但有时候没有作用
JSON.parse可能异常,需要做try捕捉


致力于让一切变得简单

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~


END

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,174评论 19 139
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,403评论 1 45
  • 穿旧的牛仔衣裤,你有几种处理办法? 可也有想过亲手改造它们? 有没有动心?想不想试试?喜欢就自己来创作吧! 本周日...
    b4d9549fb877阅读 3,762评论 0 0
  • 第七章 小山的愤怒 小山和苏剑一起来到了擂台上,台下看热闹的人越聚越多。有些人是想看小山挨揍,然后痛哭流涕低头下跪...
    易可风阅读 2,669评论 0 2
  • An ideal college should be a community a place of cloce n...
    淡蓝色的晴阅读 3,770评论 0 1

友情链接更多精彩内容