文件流实现文件下载

191 阅读1分钟
/**
 * @description: 文件下载
 * @param {*} data 文件流
 * @param {*} fileName 文件名称
 * @return {*}
 */
export const downFile = ({ data, fileName }) => {
  var blob = new Blob([data], {
    type: 'application/json;charset=utf-8'
  }); //application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型
  if (window.navigator.msSaveBlob) {
    //没有此判断的话,ie11下的导出没有效果
    window.navigator.msSaveBlob(blob, unescape(fileName));
  } else {
    var downloadElement = document.createElement('a');
    var href = window.URL.createObjectURL(blob); //创建下载的链接
    downloadElement.href = href;
    downloadElement.download = unescape(fileName); //下载后文件名
    document.body.appendChild(downloadElement);
    downloadElement.click(); //点击下载
    document.body.removeChild(downloadElement); //下载完成移除元素
    window.URL.revokeObjectURL(href); //释放掉blob对象
  }
};