Warning: getimagesize(): Filename cannot be empty in /www/wwwroot/www.xcondor.cn/usr/plugins/AMP/Action.php on line 469
GET方式文件流下载,异常弹框提示,非form表单提交

沙漠里的小蜜蜂

GET方式文件流下载,异常弹框提示,非form表单提交


// GET方式原生下载方法
downloadFile(url: string, options = {}) {
  url = url + '?' + this.objToStrUrl(options);
  let params = {};
  let xhr = new XMLHttpRequest();
  xhr.withCredentials = true;
  xhr.open("GET", url, true);
  xhr.responseType = "blob";
  xhr.onload = function (e: any) {
    if (xhr.readyState === 4) {
      let content = this.response;
      console.log(xhr, this.response)
      if (xhr.status === 200) {
        if (content.type === 'application/vnd.ms-excel') {
          //@ts-ignore
          let filename=`${xhr.getResponseHeader('Content-Disposition')?.split("attachment;filename*=utf-8''")[1]}`;
          let a = document.createElement('a');
          let url = window.URL.createObjectURL(content); 
          a.href = url;
          a.download = decodeURIComponent(filename) || '';
          a.click();
          window.URL.revokeObjectURL(url);
        } else if( content.type === 'application/json') {
            let reader = new FileReader();
            reader.readAsText(content, 'utf-8');
            reader.onload = (evt) => {
              try{
                // @ts-ignore
                let failData = JSON.parse(evt.target.result);
                Message.error(failData.message)
              } catch (err) {
                console.log(err)
              }
              
            }
        }
      } else {
        Message.error(content.message)
      }
    }
  };
  xhr.onerror = function (e) {
    Message.error("下载错误,请稍后重试", JSON.stringify(e));
    console.error(xhr.statusText);
  };
  xhr.send(JSON.stringify(params));
}

当前页面是本站的「Baidu MIP」版。查看和发表评论请点击:完整版 »