[ANGULAR] jax-rs 및 angular 2+를 사용하여 zip 파일을 다운로드하는 방법
ANGULARjax-rs 및 angular 2+를 사용하여 zip 파일을 다운로드하는 방법
해결법
-
1.JAX-RS 리소스가 주어졌습니다.
JAX-RS 리소스가 주어졌습니다.
@Produces({MediaType.APPLICATION_JSON}) @Consumes({MediaType.APPLICATION_JSON}) @Path("/myresource") public class MyResource { @Inject MyFacade myFacade; @POST @Path("/download") @Produces({"application/zip"}) public Response download(@NotNull Request req) { byte[] zipFileContent = myFacade.download(req); return Response .ok(zipFileContent) .type("application/zip") .header("Content-Disposition", "attachment; filename = \"project.zip\"") .build(); } }
Angular2 응용 프로그램을 사용하여 최종 사용자에게 파일을 소비하고 제공하기 위해 다음과 같이 서비스를 사용할 수 있습니다.
...//other import statements import fileSaver = require("file-saver"); @Injectable() export class AngularService { constructor(private http: Http) { } download(model: MyModel) { this.http.post(BASE_URL + "myresource/download", JSON.stringify(model), { method: RequestMethod.Post, responseType: ResponseContentType.Blob, headers: new Headers({'Content-type': 'application/json'}) }).subscribe( (response) => { var blob = new Blob([response.blob()], {type: 'application/zip'}); var filename = 'file.zip'; fileSaver.saveAs(blob, filename); } ); }
이 작업을 수행하려면 다음과 같이 Fixe.json에서 파일 서버를 가져와야합니다.
"dependencies": { // all angular2 dependencies... "file-saver": "1.3.2" },
그리고이 서비스는 이제 다운로드 방법에 대한 액세스가 필요한 모든 구성 요소에 주입 될 수 있습니다.
from https://stackoverflow.com/questions/39690426/how-to-use-jax-rs-and-angular-2-to-download-a-zip-file by cc-by-sa and MIT license
'ANGULAR' 카테고리의 다른 글
[ANGULAR] Angular 4 Typescript, 단추를 클릭하여 파일 열기 대화 상자 (0) | 2020.11.29 |
---|---|
[ANGULAR] Angular 5+에서 underpiled typescript로 Repo를 가져 오는 방법 (.spec.ts 파일 제외) (0) | 2020.11.29 |
[ANGULAR] Angular의 키 업으로 화살표 키를 사용하십시오 (0) | 2020.11.29 |
[ANGULAR] Angular 2의 경로 변경시 끝 간격 (0) | 2020.11.29 |
[ANGULAR] Angular 2에서 동시에 여러 파이프 (0) | 2020.11.29 |