2017-02-01 13 views
1

sql.js를 사용하여 sqlite 데이터베이스를로드하고 일부 필터를 추가하고 데이터를 쿼리하고 다양한 d3 기반 차트를 표시하는 오프라인 javascript 응용 프로그램을 만듭니다. 그러나 내 사용자가 데이터베이스 물건과 데이터베이스 파일을 가지고 귀찮게하고 싶지 않아요. 페이지가로드 될 때 파일을로드하고 싶습니다.html 파일 입력없이 Javascript File List 또는 File 객체를 만들 수 있습니까?

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

해당 요소를 쿼리하면 선택한 파일을 가져올 수있는 FileList 개체가 반환됩니다. 어떻게 HTML 요소를 포함하지 않고 FileList (또는 파일 객체)를 만들 수 있습니까? 예 :

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

가능한 복제 [HTML에서 파일 입력에 값을 설정하는 방법?] (http://stackoverflow.com/questions/1696877/how-to -set-a-value-to-a-file-in-html) –

+0

ajax 함수를 사용합니까? – evolutionxbox

+0

이 앱은 어떤 환경에서 실행됩니까? [ServiceWorker API] (https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API)를 사용하여 보길 원할 것입니다. – charlietfl

답변

2

브라우저에서 파일 액세스는 제한됩니다. 브라우저에서 실행하는 경우 파일 업로드 버튼과 같은 사용자 상호 작용이 필요합니다. HTML5에 대한 심지어 파일 액세스 API를 사용하면 노드를 작성하는 경우 당신은 자바 스크립트와 파일 시스템 프로그램에 액세스 할 수 있습니다 2016 https://stackoverflow.com/a/372333/4635829

에 대한 업데이트 파일 https://www.html5rocks.com/it/features/file_access

확인을 StackOverflow의에이 다른 답을 얻기 위해 뭔가를 사용자가 필요합니다 의 .js 응용 프로그램 및 파일 I을 사용하여/O 모듈

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");