导出文件
const xhr = new XMLHttpRequest();
const url = ASYNC_URLS.serverUrl + ' rmApi/supp/baseOrderInfo/exportOrderDetailMessage?baseOrderInfo.orderId= ' + ( this .formInfo.orderId ? this .formInfo.orderId : '' ) + ' &baseOrderInfo.purchaseStatus= ' + ( this .formInfo.purchaseStatus ? this .formInfo.purchaseStatus : '' );
xhr.open( ' get ' , url, true );
xhr.responseType = ' blob ' ;
let accessToken = sessionStorage.getItem( ' accessToken ' );
xhr.setRequestHeader( ' tokenId ' , JSON.parse(accessToken).tokenId);
xhr.onload = function() {
if ( this .status === 200 ) {
const blob = this .response;
const temp = this .getResponseHeader( ' Content-disposition ' ).split( ' = ' )[ 1 ]; // 获取文件名 处理中文乱码
const fileName = decodeURIComponent(temp);
if (window.navigator.msSaveOrOpenBlob) { // IE浏览器下
navigator.msSaveBlob(blob, fileName);
} else {
const link = document.createElement( ' a ' );
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.click();
window.URL.revokeObjectURL(link.href);
}
}
};
xhr.send( null );
上传文件
uploadHand($ event , fileUpload) {
const xhr = new XMLHttpRequest();
const files = $ event .files;
xhr.onreadystatechange = ev => {
this .onUpload(ev, files[ 0 ].name, fileUpload);
};
const url = this .uploadUrl;
const formData: FormData = new FormData();
for (let i = 0 ; i < files.length; i++ ) {
formData.append( ' file ' , files[i], files[i].name);
}
xhr.open( ' POST ' , url, true );
xhr.setRequestHeader( ' tokenId ' , JSON.parse(sessionStorage.getItem( ' accessToken ' )).tokenId
);
xhr.send(formData);
}
onUpload( event , fileName, fileUpload) {
if ( event .target.readyState === 4 ) {
this .fileName = fileName;
const res = JSON.parse( event .target.response);
if (res[ ' operateSuccess ' ]) {
this .tableData = res[ ' baseVendorVos ' ];
this .allowImport = res[ ' allowImport ' ];
this .allowCount = res[ ' allowCount ' ];
this .forbidCount = res[ ' forbidCount ' ];
this .noData = false ;
this .nextFlag = false ;
} else {
this .noData = true ;
}
}
fileUpload.files = [];
}
响应头处理
response.setHeader(“Access-Control-Allow-Origin”, “ " ); response.setHeader(“Access-Control-Expose-Headers”, " ”); response.setHeader(“Content-disposition”, “attachment; filename=” + fileName); response.setContentType(“application /vnd.ms-excel;charset=utf- 8 ”); response.setCharacterEncoding(“utf - 8 ”);
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did222796