Vue - 파일 다운로드 구현

Vue 구현 파일 다운로드
우선 백엔드에서 파일 흐름이 되돌아오는지 링크를 직접 터치하는지 구분해서 다운로드해야 한다.링크의 다운로드를 직접 터치하면 간단합니다. 되돌아오는 URL을 a탭의 URL 속성에 주어도 됩니다.
파일 흐름이라면 전단을 다시 한 번 처리해야만 다운로드를 할 수 있다.
  • 다운로드를 트리거하는 인터페이스는 axios에responseType ='blob'이라는 참고 공식 문서를 설정해야 한다.https://github.com/axios/axios
  • 파일 흐름을 받아들이는 함수를 쓴다
  • //     blob      
    // blob     fileName     
    function downFiles(blob, fileName) {
        let link = document.createElement('a')
        link.href = window.URL.createObjectURL(blob)
        link.download = fileName
        link.click()
        window.URL.revokeObjectURL(link.href)
    }
     
    
  • 요청을 보내는 리셋 함수에서도 처리를 해야 한다. 예를 들어 xx/down 인터페이스를 터치해야 한다
  • api("down", formData, "post", "blob").then(function(res) {
                    let blob = new Blob([res.data], {
                        type: '*'
                    })
                    let fileName = '    '
                    _this.$tool.downFiles(blob, fileName)
                    _this.isDown = false
                })
    

    좋은 웹페이지 즐겨찾기