vue实现文件阅读器

        有的时候你是否有这样的需求:我们在表单中,某一段我需要将本地某个文件中的内容直接copy到某个输入框中,但是又不想在本地直接打开这个文件,我们需要的就是,在界面上直接选择本地文件,然后自动识别选中文件中的内容,最后自动填写到输入框中,想要的如下图展示效果:




从本地成功选择文件后截图

       其实这个实现起来非常容易,特别是在vue中,框架本身为你提供了数据双向绑定的功能,那我们来捋一捋,这个过程是怎样的。很简单,第一步:我们得通过界面从本地选择一个要读取的文件;第二步:文件选择好后,我们要读取文件中的内容;第三步:将我们读取到的内容赋值给对应的input的value(其实只要能够正确读取到数据,在哪儿显示都是可以的,这里呢我们是显示到一个输入框中的)。 过程很简单,那么具体我们来实现一下。

具体实现步骤:

1、首先我们建立两个输框,一个是用来显示读取文件后的数据,我们给它绑定了变量inputText,另一个是用来选择本地文件的。在选择本地文件的input标签中,我们将type设置为file类型,同时在change事件中绑定了copeFile方法,这个方法是为了处理,当我们选择好本地文件后、获取文件内容后能第一时间将内容赋给第一个输入框,然后显示出文件内容。

2、重点来了,copeFile方法是如何实现的呢?非常简单,它其实就是处理了在成功选择好本地文件后,去读里面的内容,然后再将内容复制给inputText变量这整个过程。由于第一个输入框通过v-model="inputText"绑定了inputText变量,所以,一旦拿到数据后就会在对应的输入框中展示数据。这里,有个重难点就是读文件会用到FileReader API,不清楚的小伙伴可以去看看FileReader API接口的使用方法,以及调用机制。FileReader 实例有一个readAsText方法,我们可以使用它来读取文件作为文本:const reader = new FileReader(); reader.readAsText(file); 通过render.result在读取操作完成后,读取文件内容。由于FileReader API是异步的,所以我在此处用到了setTimeout,1秒后取数据,确保能够拿到数据。当然你也可以通过onload来获取数据。

具体代码截图:


        好了,简单的文件阅读器就讲完啦,功能是实现了,样子是比较丑的,样式这一块的话就你们自己根据实际需要自行设计了哦。如果您之前没有见过或者使用过FileReader API,那么建议您花一点时间再看看这个链接https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader

参考链接:

https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader

https://www.w3cplus.com/vue/file-reader-component.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,101评论 1 32
  •   随着 HTML5 的出现,面向未来 Web 应用的 JavaScript API 也得到了极大的发展。这些 A...
    霜天晓阅读 1,027评论 0 0
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 26,755评论 5 19
  • 每个人心中都有一个紫霞,可惜很多人最终却只能和晶晶在一起!张爱玲里的《半生缘》,当已经娶妻生子的世均最后重...
    语默若语阅读 238评论 0 0
  • 先来放一下调用实例看看,算是比较优雅的链式操作 一、自定义Operation部分1:要支持异步操作,首先要重载其中...
    flyrr阅读 1,096评论 0 1