js 直接打印服务器返回的文件流
时间: 2023-09-14 18:14:51 浏览: 43
在前端中,可以通过 XMLHttpRequest 对象来获取服务器返回的文件流,然后使用 Blob 对象创建文件对象,并创建 URL 对象来生成文件的 URL,最后可以将文件 URL 传递给 a 标签或者 window.open() 方法来实现下载。
以下是示例代码:
```javascript
const xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/downloadFile', true);
xhr.responseType = 'blob';
xhr.onload = function() {
if (this.status === 200) {
const blob = new Blob([this.response], { type: 'application/octet-stream' });
const url = URL.createObjectURL(blob);
window.open(url);
}
};
xhr.send();
```
其中,xhr.responseType 属性设置为 blob,表示希望服务器返回的数据类型为二进制流,而不是字符串。在 onload 回调函数中,通过 new Blob() 方法创建文件对象,并使用 URL.createObjectURL() 方法生成文件 URL。最后,使用 window.open() 方法打开文件 URL,即可实现下载。
需要注意的是,如果服务器返回的文件是文本文件,可以将 responseType 属性设置为 text,然后直接在页面上展示文件内容,而不是下载。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)