2017-12-30 8 views
0

저는 Angular 5로 작업 중이며 AMP HTML 파일을 텍스트로 읽어야하는 응용 프로그램이 있습니다. 이 파일은 구성 요소에 들어 있으며이 구성 요소에서만 액세스해야합니다.Javascript, Typescript, Angular 5 - 파일 열기 및 읽기

파일 이름을 지정하여 읽기 전용으로 파일을 열 수 있기를 바랍니다. 가능

let file = open('amp.html'); 

인가 :

사실이 같은 뭔가를 찾고 있어요? 어떻게 이것을 할 수 있습니까?

+3

어떤 환경입니까? 브라우저 에서요? NodeJS? Windows 메트로 앱? 다른 것? –

+0

브라우저에서 JS로 작성된 보안 문제로 인해 JS로 파일 시스템에 액세스 할 수 없습니다. Node를 사용한다면, 내장 된'fs' 모듈을 사용하여 파일을 읽고 쓸 수 있습니다. – magreenberg

+0

Angular를 사용하여 개발 중이며 구성 요소에 내가 읽고 싶은 파일이 있습니다 – Arphel

답변

-1

브라우저 사이드를 작성하는 경우 JS

파일을 읽을 필요가 없습니다. JS가 브라우저에서 실행 중이므로 해당 파일을 어디서 가져 왔는지 생각해야합니다.

파일이 서버에있는 경우 먼저 서버에서 해당 파일을 요청하여 fetch해야합니다.

사용자 컴퓨터에서 파일을 읽는 경우 브라우저에서 File API을 사용하여 사용자가 해당 파일을 선택할 수있게 할 수 있습니다. 당신은 다른 프로그래밍 언어에서와 같이

당신이 NodeJS를 사용하는 가정 백엔드 JS에게

을 작성하는 경우, 당신은 파일 작업을 수행 할 수 있습니다. 난 당신이 올바른 이해하면 fs 모듈

0

을 확인,이 같은 텍스트로 읽을 수 있습니다

function readFile(file){ 
    var raw = new XMLHttpRequest(); // create a request 
    raw.open("GET", file, false); // open file 
    raw.onreadystatechange = function(){ // file is ready to read 
     if(raw.readyState === 4){ 
      if(raw.status === 200 || raw.status == 0){ 
       var allText = raw.responseText; 
       alert(allText); // can be also console.logged, of course. 
      } 
     } 
    } 
    raw.send(null); // return control 
} 

사용 :

readFile('link.html') 

나는 this question에 감사하게이 문제를 해결했다.

+0

XMLHttpRequest를 사용할 때이 메시지가 나타납니다 : [사용되지 않음] 주 스레드의 동기 XMLHttpRequest는 최종 사용자의 경험. – Arphel

+0

이 솔루션은 v5에서 작동합니다. 프로젝트 샘플에 대한 링크를 제공 할 수 있습니다. 그렇지 않으면 모듈 및 구성 요소 파일과 같은 자세한 정보를 제공해주십시오. https://www.dropbox.com/sh/js39skue1sz1ovq/AAAbBGStl6gn9nLfkHD_oAVna?dl=0 – Animus