百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

JS竟然可以读取文件?#web前端 js读取文件和写入文件

qiyuwang 2024-10-31 15:50 28 浏览 0 评论

这个视频来说一下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的文件读取,感谢大家的收看。

相关推荐

基于Docker方式安装与部署Camunda流程引擎

1Camunda简介官网:https://docs.camunda.org/manual/7.19/installation/docker/Camunda是一个轻量级、开源且高度灵活的工作流和决策自...

宝塔Linux面板如何部署Java项目?(宝塔面板 linux)

通过宝塔面板部署Java还是很方便的,至少不需要自己输入tomcat之类的安装命令了。在部署java项目前,我还是先说下目前的系统环境,如果和我的系统环境不一样,导致部署不成功,那你可能需要去找其他资...

浪潮服务器如何用IPMI安装Linux系统

【注意事项】此处以浪潮服务器为例进行演示所需使用的软件:Chrome浏览器个人PC中需要预先安装java,推荐使用jdk-8u181-windows-x64.exe【操作步骤】1、在服务器的BIOS中...

Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)

由于项目需要存储历史业务数据,经过评估数据量会达到100亿以上,在原有mongodb集群和ES集群基础上,需要搭建Hbase集群进行调研,所以首先总结一下Hadoop集群的搭建过程。一、三个节点的集群...

Hadoop高可用集群搭建及API调用(hadoop高可用原理)

NameNodeHA背景在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNo...

使用Wordpress搭建一个属于自己的网站

现在开源的博客很多,但是考虑到wordpress对网站的seo做的很好,插件也多。并且全世界流量排名前1000万的网站有33.4%是用Wordpress搭建的!所以尝试用Wordpress搭建一个网站...

Centos 安装 Jenkins(centos 安装ssh)

1、Java安装查看系统是否已安装Javayumlistinstalled|grepjava...

Java教程:gitlab-使用入门(java中的git)

1导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作...

Dockerfile部署Java项目(docker部署java应用)

1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

Java路径-02-Java环境配置(java环境搭建及配置教程)

1Window环境配置1.1下载...

35.Centos中安装python和web.py框架

文章目录前言1.Centos7python:2.Centos8python:3.进行下载web.py框架然后应用:4.安装好之后进行验证:5.总结:前言...

《我的世界》服务器搭建(我的世界服务器如何搭建)

1.CentOS7环境1.1更改YUM源#下载YUM源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com...

CentOS 7 升级 GCC 版本(centos7.4升级7.5)

1.GCC工具介绍GCC编译器:...

Linux安装Nginx详细教程(linux安装配置nginx)

环境准备1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。命令:yuminstallgcc-c++显示完毕,表示安装完成:2.Nginx的http模块需要...

取消回复欢迎 发表评论: