react文件下载以及a.download下载的坑

后台java传到前台的是outputstream,并不是文件的地址,前台react关键代码为:

 response.blob().then(blob => {
        const aLink = document.createElement('a');
        document.body.appendChild(aLink);
        aLink.style.display='none';
        const objectUrl = window.URL.createObjectURL(blob);
        aLink.href = objectUrl;
        aLink.download = fileName;
        aLink.click();
        document.body.removeChild(aLink);
      });

这样写的话火狐和Chrome都能用。

document.body.appendChild(aLink); 这句是针对火狐的,没有这句话,火狐就根本导不出文件来,火狐对a.download似乎有点个人意见,但Chrome可以,折腾了好久。

上面这段代码是综合了网上两位大神的回答,网址不记得了,如果侵权请告知。

你可能感兴趣的:(js)