a 태그를 사용하여 파일을 다운로드할 때 다운로드 속성이 다운로드된 파일 이름을 지정하도록 설정되지만 적용되지 않습니다. 내 태그 다운로드 링크가 교차 도메인이기 때문에 교차 도메인 때문에 브라우저가 파일을 가져올 수 없기 때문에 파일 이름을 변경할 수 없는 것 같습니다.
원래 다운로드 방식은 a 태그를 통해 URL을 설정하는 방식입니다 백엔드에서 제공하는 url 경로에 파일명이 있습니다 브라우저는 기본적으로 경로에 있는 파일명을 사용할 수 있습니다 경로, 파일 이름을 수동으로 설정해야 합니다.
해결책:
새 XMLHttpRequest 개체를 만들고, 파일을 가져와 Blob으로 변환하고, Blob 개체를 URL로 변환하고, 태그를 만들고, 다운로드 특성을 할당하고, 다운로드합니다.
const xhr = new window.XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.send();
xhr.onload = () => {
if (xhr.status === 200) {
const url = window.URL.createObjectURL(xhr.response);
const a = document.createElement('a');
a.href = url;
a.download = `${fileName}.xlsx`;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
};
}
브라우저는 파일 형식에 따라 적절한 확장자를 자동으로 추가합니다.브라우저에서 자동으로 추가한 확장자가 잘못되어 .xlsx를 추가했습니다.