-
API 비동기로 파일 다운 구현하는법Laravel 2022. 3. 29. 21:43반응형SMALL
# What?
비동기 통신으로 파일 다운로드 구현
# Why?
api는 비동기 통신 기반이라 일반적인 방법으로 파일 다운 불가능, 그렇다고 web.php 따로 뚫으면 보안 취약 및 불편
# How?
-> 파일 저장
-> 저장된 파일 url을 리턴
-> 프론트단에서 a태그에 해당 링크를 연결 후 클릭 이벤트 발생시키기
@ 백엔드
public function download(Request $request) { ... $download = Download::create(); $path = $download->id."/".$request->order.'주차 과제기록.xlsx'; Excel::store(new UsersExport($request->target_ids, $request->order, $request->includes), $path , "s3"); $url = Storage::disk("s3")->url($path); return $this->respondSuccessfully($url); }
@ 프론트
download() { this.form.post("/api/users/download") .then(response => { let a = document.getElementById("download"); a.href = response.data.data; a.click(); }) },
LIST'Laravel' 카테고리의 다른 글
Custom Resource Collection 만들기(Resource에 변수 넘기기) (0) 2022.04.26 command + forge schedule(스케줄) (0) 2022.04.11 Carbon 이번주 특정 요일 얻기(월화수목금토일) (0) 2022.03.22 그룹별로 카운팅하고 싶을 때 + 그룹핑 대상에 where처럼 조건 걸고싶을 때 (GroupBy + Having) (0) 2022.01.21 [삭제대기] 텍스트 에디터(CKEDITOR5 + VUE + LARAVEL) 이미지 업로드 (0) 2021.12.27