你可以创建一个没有html文件输入的Javascript文件列表或文件对象

时间:2017-02-01 14:07:30

标签: javascript html fileapi

我正在创建一个离线javascript应用程序,该应用程序使用sql.js加载sqlite数据库,添加一些过滤器并查询数据并显示各种基于d3的图表。但是,我的用户不想被数据库内容和数据库文件所困扰。我想在页面加载时加载文件。

<input id="inpLoadDB" type="file" onchange="loadDB()">

当我查询该元素时,它返回一个FileList对象,我可以从中获取所选文件。如何在不包含HTML元素的情况下构建FileList(或仅文件对象)。类似的东西:

var fl=new FileList();
fl.readDir("./data/");

1 个答案:

答案 0 :(得分:4)

限制从浏览器访问文件。如果您从浏览器执行它,则需要用户交互,例如上传文件按钮。甚至HTML5的文件访问API也要求用户做一些事情来获取文件https://www.html5rocks.com/it/features/file_access

使用2016 https://stackoverflow.com/a/372333/4635829

的更新,在StackOverflow上查看此其他答案

如果您编写Node.js应用程序并使用文件I / O模块,则可以使用Javascript访问文件系统编程

var fs = require("fs");

// Asynchronous read
fs.readFile('input.txt', function (err, data) {
   if (err) {
      return console.error(err);
   }
   console.log("Asynchronous read: " + data.toString());
});

// Synchronous read
var data = fs.readFileSync('input.txt');
console.log("Synchronous read: " + data.toString());

console.log("Program Ended");