업데이트:
다운로드 관련 JAVASCRIPT
이미지 다운받고 미리보기
responseType을 ‘blob’으로 API를 호출하여야 하며, 서버에 있던 이미지를 화면으로 미리보기를 위해 가상 url을 생성하는 window.URL.createObjectURL 정적 메서드를 사용.
axios.post(url, body, {
headers : {
"Content-Type" : "application/json;charset=UTF-8",
"Accept" : "application/json",
"Access-Control-Allow-Origin" : "*",
"X-AUTH-TOKEN": XXXXXXX,
"X-MENU-ID" : "",
"X-CLNT-IP" : "",
},
timeout: 600000, // 10분
responseType : 'blob',
}).then(res=>{
let blob = new Blob([res.data], { type:"image/png"});
console.log(window.URL.createObjectURL(blob));
});
문서파일 다운로드
가상 Achor 태그를 생성하여 해당파일을 수동 클릭하여 다운로드 함.
fileDownload(blob, fileName){ //fileName은 원하는 파일명을 string 타입으로 작성함
const link = document.createElement('a');
if (window.navigator.msSaveOrOpenBlob) { // IE blob Download
link.onclick = function () {
window.navigator.msSaveOrOpenBlob(blob, fileName);
};
} else {
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
}
link.click();
}
서버에 있는 파일을 접근하여 다운로드(녹취파일 재생)
let fileNmArr = rcodFileNm.split('/');
let fileNm = encodeURIComponent(fileNmArr[fileNmArr.length-1]);
fileNmArr[fileNmArr.length-1] = fileNm;
let path = fileNmArr.join('/');
this.nowPlayPath = '[서버 도메인]/upload/rcod' + path;
let audioObj = document.querySelector('#player');
audioObj.load();
audioObj.addEventListener('canplay', ()=>{
this.isLoad = false;
audioObj.play();
});
<audio class="player" id="player" controls ref="player">
<source id="source" ref="source" type="audio/mp3" :src="nowPlayPath">
Your browser does not support the <code>audio</code> element.
</audio>
[참고] URI 전체를 인코딩 할때는 encodeURI()를 사용하고 URI 파라메터를 인코딩 할때는 encodeURIComponent()를 사용하면 된다.
- encodeURI는 알파벳, 0~9의 숫자, ; , / ? : @ & = + $ # - _ . ! ~ * ‘ ( ) 를 제외한 문자를 인코딩(이스케이프 처리)
- encodeURIComponent는 알파벳,0~9의 숫자 - _ . ! ~ * ‘ ( ) 를 제외한 문자를 이스케이프 처리
댓글남기기