网站首页 > java教程 正文
这个视频来说一下js的文件读取。刚好有同学问到,首先要说一点,对文件进行读写、增删、改查一系列的操作是涉及到用户隐私安全的。用前端语言,比方JS是不可能完全做到的。要不然写一个网页,访问了就可以在本地电脑上面随便新增文件,或者把电脑里面的东西全部给干了或者改了,都是一件很恐怖的事情。
可以实现文件操作的语言,比方nodejs,一些后端语言,PHP、JAVA这些。这个时候要分清楚是操作哪里的文件,是客户端还是服务器端。如果要操作客户端的,都要获取相应的权限。比方手机端的应用都会向我们拿权限。很多时候不给文件访问的权限,比方图库,连相册访问都访问不了,不用增删、改查了,这些先不管它了。
JS的文件读取,简单的文件读取还是可以实现的。但是同样,这里要读取的是本地的文件,其实也需要用户给予权限。这里要怎么做?就需要配合一个input的控件,让用户自己来操作。这里提供了一个按钮,只有用户主动去选择了,这个行为是用户触发的。换言之就是得到了用户的允许才会对文件进行读取,不会JS自动触发、自动读取,那就不安全了。
来看一下具体怎么操作。要对input添加一个onchange事件,然后执行一个函数a1s,把事件对象传进去,然后来写这个函数。这里需要用到一个fileReader类,先把对象实例化出来。可以先把事件对象打印出来看一下。先把控制台打开,然后来选择文件。这里选择a.txt文件,事件对象打印出来了,展开来看一下。
里面有个target,target下面还有一个叫files,这一个下标为0的,files里面下标为0的,放的就是刚才选择的文件a.txt,所以就要读取用户选择的文件。这里是可以读取成好几种格式的,就把它读成文本。
·要读取什么?就是刚才给大家展开来看的target下面files的第0个,就是刚才选择的文件a.txt,这个文件里面就随便输入一句话,看一下等一下可不可以把它读取出来。这个过程是异步的,要先等它读取。
·这里面还是先把事件对象打出来看一下,同样是选择刚才那个文件,再展开来看一下,同样找到target,它里面有一个result,大家看到没有,result里面保存的就是读取的文件里面的内容,这样就可以读取到文件的内容了。
·比方这里直接把读取到的内容输出来,没有问题,这个内容获取到了。当然除了读这种txt的文本,读个json,甚至读个图片也可以,就来读个图片试一下。读图片这里就不是读成text,读成base64。
·这次就来选择一张图片,这里就把读取到的结果输出来了,可以复制一下,这个是base64,可以把刚才复制的那一串在地址栏里面回车,这张图片就出来了,是可以读取到这张图片的。
·可以用读取到的图片做一些预览图之类的,这个图片有点大,给它改小一点。JS获取到img,然后设置一下它的src,把result赋值给它。
·现在还没有预览图,可以手动来选择一张,这里随便选择一张图片,这个图片就读取到了,然后换一张图片也可以,另外再选择另外一张,都是可以正常读取的。
这个视频就简单给大家说了一下JS的文件读取,感谢大家的收看。
- 上一篇: java学习总结(java总结与心得)
- 下一篇: 亲手带你 Debug Fastjson 的安全漏洞
猜你喜欢
- 2024-10-28 JavaScript获取json中key所对应的value值的简单方法
- 2024-10-28 为什么JSON.parse会损坏大数字,如何解决这个问题?
- 2024-10-28 深入浅出Json-Schema-Validation(深入浅出stm)
- 2024-10-28 这几个JSON 工具,你是不是错过了
- 2024-10-28 深入解析 JSONPath:从入门到精通(jsonpath解析json)
- 2024-10-28 《Servlet》第18节:HttpServletResponse响应JSON和HTML内容
- 2024-10-28 netty系列之:netty中的核心解码器json
- 2024-10-28 Android JSON(android json to room)
- 2024-10-28 一种适合懒人的JSON解析方式(json解析工具哪个好用)
- 2024-10-28 JAVA实现生成多层JSON格式数据(含源码——三层样例)
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)