可以通过 js 访问本地文件夹或者本地的一些配置吗?希望朋友们可以给一些思路和建议!! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sunshineHu
V2EX    程序员

可以通过 js 访问本地文件夹或者本地的一些配置吗?希望朋友们可以给一些思路和建议!!

  sunshineHu 2017-07-11 11:09:36 +08:00 4503 次点击
这是一个创建于 3030 天前的主题,其中的信息可能已经有所发展或是发生改变。

大佬让我近期做一个调研,js 是否可以访问本地的文件夹以及一些配置。 在网上看了一点,都是只兼容 IE 的。前端小菜鸟觉得一头雾水,所以希望朋友们可以给点建议。

第 1 条附言    2017-07-12 14:31:37 +08:00
主要是想要访问本地的一些配置,想要模仿 c#的一些功能,例如这样:
[configInfo]
;命名空间

;设置网络端 IP 地址
;例如:
IP = 192.168.XX.XX
;IP =

TRAN_PROTOCOL = websocket

;服务端端口号,默认端口是 80
;SERVER_PORT = 80

;设置扩展音频设备名称,当需要支持新设备时,填写录音设备名称
;例如:
;EXTEND_RECORD_DEVICE = Conexant SmartAudio HD
;EXTEND_RECORD_DEVICE =

;设置扩展录音设备录音路数
;EXTEND_RECORD_DEVICE_CHANNELNUM = 2

;是否启动智能联想
;INTELLIGENT_INPUT=off
16 条回复    2017-07-12 14:30:00 +08:00
zpf124
    1
zpf124  
   2017-07-11 11:31:49 +08:00
如网页的话并不能, 或者说正经方法并不能。

读取本地文件到如今 也只有 IE 的老 api ActiveX 和 Flash,然而这两者现在都是要被淘汰的技术 。
现代浏览器都尽量限制你去操作浏览器之外的环境,要不你猜猜你访问小 H 网的时候中木马是因为啥?

看你的需求, 如果仅仅是记录 用户在你们网站上的 浏览和操作 记录之类的,使页面内容更符合用户习惯,那 cookie 和 local Storage 都可以实现效果。
如果你们要读取用户本地目录树, 在网页上操作用户文件,那只能去选 flash,而且我觉得 这种情况除非目标用户是你们公司内部人员,否则谁会信任你们的 flash。
ibufu
    2
ibufu  
   2017-07-11 12:36:57 +08:00
node 可以
oott123
    3
oott123  
   2017-07-11 12:38:07 +08:00   1
不可以,不过可以看看 node.js 和 electron
shakoon
    4
shakoon  
   2017-07-11 12:39:28 +08:00
那玩意叫 fso,有快 20 年历史了吧
chunqiuyiyu
    5
chunqiuyiyu  
   2017-07-11 12:39:53 +08:00 via iPhone
前端不能直接访问本地的文件系统,nodejs 可以使用 fs 模块。读取本地文件的话,前端可以通过 input 标签上传或者拖拽获得 file 对象,也可以通过 xhr 请求得到,这种方式要本地起一个服务器的。
shiji
    6
shiji  
   2017-07-11 12:46:06 +08:00 via Android
js 不能主动读取。 但是可以读取用户选择的文件(类似上传,弹出窗口,用户选择文件,确定)
html5 更有相关的方法
https://developer.mozilla.org/en-US/docs/Web/API/FileReader
iyangyuan
    7
iyangyuan  
   2017-07-11 13:58:16 +08:00
难道不能用 localStorage 么
lukunlin
    8
lukunlin  
   2017-07-11 14:46:57 +08:00
js 是不能读取用户计算机的文件的,除非是用户选择的。
不然我要是能用 js 去 读写 你电脑上的文件,那你还有隐私吗?
不怕中毒吗?
zjsxwc
    9
zjsxwc  
   2017-07-11 14:55:28 +08:00
用 input 标签呗,缺点是需要用户主动点才行,但是做不到 js 默默的自动读取文件
harry890829
    10
harry890829  
   2017-07-11 15:01:21 +08:00
你需要一个框架,我这里说下之前的一个项目,mfc 做一个 htmlDlg,界面 html/css/js 来做,本机操作 mfc 来进行,mfc 提供配套的关联 api。不过 mfc 只支持 ie,非常蠢,如果你项目刚开的话,直接上 chrome 内核,网上找找精简的会好很多
stephenyin
    11
stephenyin  
   2017-07-11 16:18:13 +08:00
stephenyin
    12
stephenyin  
   2017-07-11 16:20:02 +08:00
简单的说可以通过改 v8 引擎实现.
jugelizi
    13
jugelizi  
   2017-07-11 16:33:34 +08:00
如果定制版的浏览器 那没问题
autoxbc
    14
autoxbc  
   2017-07-11 16:55:34 +08:00
js 的场景太多了,网页里的 js,浏览器扩展里的 js,本地应用里的 js,权限都不一样。
AV1
    15
AV1  
   2017-07-11 17:27:33 +08:00
首先要有用户授权,比如 input 的 file api,可以访问用户授权了的文件。

如果你访问我的网站,我不经授权就能随随便便扫描你的电脑,那这个世界还有安全可言么?
sunshineHu
    16
sunshineHu  
OP
   2017-07-12 14:30:00 +08:00
@DOLLOR
@jugelizi 具体想要的效果是能够通过 js 访问本地的文件配置,例如这样:
[configInfo]
;命名空间

;设置网络端 IP 地址
;例如:
IP = 192.168.XX.XX
;IP =

TRAN_PROTOCOL = websocket

;服务端端口号,默认端口是 80
;SERVER_PORT = 80

;设置扩展音频设备名称,当需要支持新设备时,填写录音设备名称
;例如:
;EXTEND_RECORD_DEVICE = Conexant SmartAudio HD
;EXTEND_RECORD_DEVICE =

;设置扩展录音设备录音路数
;EXTEND_RECORD_DEVICE_CHANNELNUM = 2

;是否启动智能联想
;INTELLIGENT_INPUT=off
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2155 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 24ms UTC 16:10 PVG 00:10 LAX 09:10 JFK 12:10
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86