前端中能否点击元素显示本地文件内容?

2020 年 6 月 17 日
 seasona

对前端的内容不是很了解,不知道单纯通过前端能否实现以下内容: 点击浏览器内的元素,能显示本地的文件内容,比如点击 ul 标签,显示本地的 txt 文件内容

我目前找到的资料是:

https://jsbin.com/koxuhuduro/edit?html,js,output

是可以做到点击打开文件按钮来显示本地文件内容,但能否不需要通过按钮,单纯点击 html 中的元素就能显示文件内容?

3295 次点击
所在节点    程序员
11 条回复
RingoTC
2020 年 6 月 17 日
你如果静默地读取用户本地文件地内容,而不让用户通过弹窗的方式知晓然后选择要读取的文件。
那用户的信息安全就得不到保障。
musi
2020 年 6 月 17 日
那么问题来了,按钮不是 html 中的元素?
xiangyuecn
2020 年 6 月 17 日
能,但本质还是点击打开文件

点击任意元素,js 中手动触发 一个隐藏的 file input click(),打开浏览器的文件选择,选择文件后,把文件读出来
miniwade514
2020 年 6 月 17 日
我猜楼主是想绕过选文件这一步?纯前端做不到。
qiayue
2020 年 6 月 17 日
《小 tips: 纯前端 JS 读取与解析本地文本类文件》
https://www.zhangxinxu.com/wordpress/2018/03/js-parse-text-file/
renmu123
2020 年 6 月 17 日
安全性考虑,不允许这样的操作
faceRollingKB
2020 年 6 月 17 日
分几个步骤:
1 、点击 html 元素,触发 input[file]标签的 click 事件,启动浏览器上传文件功能
2 、input(onchange)事件中获取用户上传的文件流
3 、使用特定的编码将文件流转化为字符串进行解析
crclz
2020 年 6 月 17 日
出于安全考虑,纯前端读取文件只能经过 input 来让用户主动选择。并且 chrome 不会给前端提供文件路径,而是提供一个假的路径,例如 C:/fakedir/real_filename.txt 。可以去 F12 试一试。
MzM2ODkx
2020 年 6 月 18 日
chooseFileSystemEntries 新 API 了解下
systemcall
2020 年 6 月 18 日
让用户选择整个驱动器试试,不清楚有没有阻碍
nianyu
2020 年 6 月 18 日
可以 但是你得先通过 input file 选中文件。而不是通过点击任意元素就能实现

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/682423

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX