前端问题:ajax请求获取了pdf 文件流,怎么下载
时间: 2024-09-23 12:03:43 浏览: 11
前端通过Ajax发起请求获取PDF文件流时,可以将文件转换成可下载的形式。通常的做法是创建一个隐藏的`<a>`标签,然后设置其`href`属性指向数据URL,触发点击事件进行下载。以下是JavaScript的一个示例:
```javascript
function downloadFile(fileStream) {
var url = 'data:application/pdf;base64,' + btoa(fileStream);
var link = document.createElement('a');
link.href = url;
link.download = 'filename.pdf'; // 下载名称自定义
link.click();
}
// 当从服务器获取到PDF文件流时调用
$.ajax({
url: '/path/to/download',
type: 'GET',
dataType: 'blob', // 请求数据类型设置为Blob
success: function(blob) {
downloadFile(new Blob([blob], {type: 'application/pdf'}));
},
error: function() {
console.error('Failed to fetch PDF file.');
}
});
```
在这个例子中,首先通过Ajax请求获取到PDF文件的Blob对象,然后利用浏览器的原生功能将其编码为data URL。然后创建一个`<a>`链接并模拟点击,触发下载。