V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sunshineHu
V2EX  ›  程序员

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

  •  1
     
  •   sunshineHu · Jul 11, 2017 · 4764 views
    This topic created in 3213 days ago, the information mentioned may be changed or developed.

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

    Supplement 1  ·  Jul 12, 2017
    主要是想要访问本地的一些配置,想要模仿 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 replies    2017-07-12 14:30:00 +08:00
    zpf124
        1
    zpf124  
       Jul 11, 2017
    如网页的话并不能, 或者说正经方法并不能。

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

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

    如果你访问我的网站,我不经授权就能随随便便扫描你的电脑,那这个世界还有安全可言么?
    sunshineHu
        16
    sunshineHu  
    OP
       Jul 12, 2017
    @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
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5802 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 97ms · UTC 01:45 · PVG 09:45 · LAX 18:45 · JFK 21:45
    ♥ Do have faith in what you're doing.