2017-12-10 10 views
0

안녕하세요. Amazon S3에 Angular/Ionic 2+ 앱을 연결했습니다. 내 앱에서 파일을 다운로드하려는 경우 백엔드에서 내 S3에서 생성 된 고유 한 사전 서명 된 URL을 제공합니다. 다음과 같은 :Angular 2 URL에서 파일 다운로드

https://s3.ap-southeast-2.amazonaws.com/test%2F1/435345345-4545-4aa8-8a8a-etertertttrt-4addd157-ac38-41fd-5454-8ffa709ee77fcsdfsdfa ...

내가 URL을 일단 내 구성 요소를 통해 프로그래밍 방식으로 파일을 다운로드 어떻게 내 질문은? 나는 운이없이 지금까지 시도 :

window.open(url, '_blank'); 

그리고

getFile(url: string): void { 
    this.http.get(url) 
    .map((res) => { 
     return new Blob([res.blob()], { type: 'image/jpeg' }) 
    }) 
    .subscribe(res => { 
     saveAs(res,'test.jpg'); 
     let fileURL = URL.createObjectURL(res); 
     window.open(fileURL); 
    }, error => { 
     console.log(error); 
    }); 
    console.log('Get File http'); 
    } 

을 나는 오류가 위의 코드와 함께 : 요청 본체는 BLOB 또는 배열 버퍼 중 하나가 아닙니다.

이 덕분에 어떤 도움을 주셔서 감사합니다

..

+0

내가 작업을해야 위의 생각, 당신은 내가 요청 몸이 BLOB 또는 배열 버퍼 중 하나가 아닌 오류가 팝업 – Sajeetharan

+0

을 허용 한 경우 바로 확인. 비록 제가 수동으로 링크를 열면 파일이 아무런 문제도 다운로드되지 않습니다. –

+0

백엔드에서 파일을 첨부 파일로 보내 Java 스크립트로 수동으로 다운로드하지 않아도됩니다. – Dummy

답변

0

File Transfer Plugin를 살펴 보자.

이 파일은 Ionic 2 응용 프로그램에서 파일을 다운로드하는 데 사용됩니다. 최신 버전의 플러그인 (1.7.0)에는 현재 응용 프로그램을 빌드 할 때 발생하는 버그가 있습니다. 나는 현재 버전 1.6.3을 사용하고있다. 그래서 다음 명령을 사용하여 플러그인을 설치 :

Ionic cordova plugin add [email protected] 
+0

파일 전송 플러그인은 점진적 웹 앱을 지원하지 않습니다. –

+0

파일 전송 플러그인에서이 기능을 지원하지 않는다는 이유는 무엇입니까? 플러그인은 '브라우저'플랫폼을 지원합니다. – JoeriShoeby

+0

일반 데스크톱 크롬 또는 사파리 브라우저에서는 파일을 열지 않지만 Android 웹 또는 iOS 모바일에서는 파일을 엽니 다. –