>  기사  >  웹 프론트엔드  >  JS 다운로드 파일 스트림의 간단한 조작(코드 첨부)

JS 다운로드 파일 스트림의 간단한 조작(코드 첨부)

亚连
亚连원래의
2018-05-18 10:59:577590검색

다음은 관심 있는 학생들이 살펴볼 수 있도록 제가 편집한 JS 다운로드 파일 흐름의 간단한 작업입니다.

다운로드한 코드는 다음과 같습니다.

var xhr = new XMLHttpRequest();
var formData = new FormData();
formData.append('snNumber', $("#snNumber").val());
formData.append('spec', $("#spec").val());
formData.append('startCreateDate', $("#startCreateDate").val());
formData.append('endCreateDate', $("#endCreateDate").val());
formData.append('startActiveDate', $("#startActiveDate").val());
formData.append('endActiveDate', $("#endActiveDate").val());
formData.append('supplier', $("#supplier").val());
formData.append('state', $("#cboDeviceStatus").val());
xhr.open('POST', vpms.ajaxUrl + vpms.manageUserUrl + "exportExcelDevices", true);
xhr.setRequestHeader("accessToken", userInfo.accessToken);
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (this.status == 200) {
var blob = this.response;
var filename = "设备导出{0}.xlsx".format(vpms.core.date.format("yyyyMMddhhmmss"));
var a = document.createElement('a');
blob.type = "application/excel";
var url = createObjectURL(blob);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}
};
xhr.send(formData);
});

Chrome을 사용하여 다운로드하면 잘 실행되지만 IE Explorer 11 버전 Excel 내보내기 버튼이 응답하지 않거나 "이 Blob을 열려면 새 애플리케이션이 필요합니다."라는 팝업이 나타납니다.

향상된 Blob 처리: 다음과 같습니다

if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {

var a = document.createElement('a');
blob.type = "application/excel";
var url = createObjectURL(blob);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}

현재 IE에서 내보내기는 정상입니다.

JS 다운로드 파일 스트림의 간단한 조작(코드 첨부)

위는 모든 사람을 위해 컴파일한 JS 다운로드 파일 흐름의 간단한 작업입니다. 미래에.

관련 기사:

인증 코드 생성 및 js에서 확인(코드 포함, 단순 및 조잡함, 교육 및 훈련 포함)

JS에서 JSON 데이터를 가져오기 위한 간단한 호출 정보(코드 첨부, 단순 및 조잡함) )

JS를 사용하여 POST 메서드를 사용하여 요청을 제출하는 방법(코드가 포함된 자세한 답변)

위 내용은 JS 다운로드 파일 스트림의 간단한 조작(코드 첨부)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.