后台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可以,折腾了好久。
上面这段代码是综合了网上两位大神的回答,网址不记得了,如果侵权请告知。