You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript调用FileReader API通过本地文件路径直接读写文件?

结论

不可以,你不能直接把C:/Users/Code/example.txt这类本地文件绝对路径作为参数传给FileReader的读取方法。

原因

浏览器基于安全沙箱机制的限制,默认禁止JavaScript未经用户授权直接读写本地文件系统的任意路径,避免恶意网站偷偷窃取、篡改用户本地的敏感数据,引发安全风险。

合法的File对象获取途径

你传入printFile方法的file参数必须是浏览器原生的File或Blob类型对象,纯字符串格式的文件路径无法被识别,传入后会直接抛出参数类型错误。合法的File对象只能通过用户主动触发的交互行为获取,常见场景如下:

  • 用户点击<input type="file">元素选择文件后,从返回的FileList中取到对应的File对象
  • 用户将本地文件拖拽到浏览器指定区域后,从拖拽的drop事件回调中提取File对象
  • 若你是在Electron、NW.js这类桌面端跨端开发环境下,可直接使用框架提供的文件系统API读取指定路径的文件内容,再封装为Blob/File类型传入FileReader使用。

示例代码说明

你贴出的示例代码是标准的FileReader文本读取逻辑,只要传入合法的File对象即可正常工作:

function printFile(file) {
  const reader = new FileReader();
  reader.onload = function(evt) {
    console.log(evt.target.result);
  };
  reader.readAsText(file);
}

内容的提问来源于stack exchange,提问作者Dinuk Wijesiri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:06:01