vue预览blob文件流
时间: 2025-01-20 10:48:13 浏览: 41
### 实现 Vue 中 Blob 文件流预览
为了实现在 Vue 项目中对来自服务器的文件流进行预览,可以按照如下方法操作:
在发送 HTTP 请求获取文件数据时,需确保 `axios` 或其他 HTTP 客户端库配置了正确的响应类型。对于大多数浏览器来说,当处理 PDF 或图片这类二进制大对象 (BLOB) 数据时,应该将请求头中的 `responseType` 设置为 `'arraybuffer'`[^2]。
接收到的数据应当被转换成一个 JavaScript 的 `Blob` 对象以便于创建 URL 来访问该资源。这里需要注意的是,在构建 `Blob` 对象的时候要指定其 MIME 类型,这通常可以从服务端响应头部字段 `Content-Type` 获取到。
下面是一个简单的例子来展示如何完成这项工作:
```javascript
// 假设已安装并导入 axios 库用于发起网络请求
import axios from 'axios';
async function previewFile(url) {
try {
const response = await axios({
method: 'get',
url,
responseType: 'arraybuffer', // 确保正确设置此参数
});
// 使用后端返回的内容类型作为 blob 的类型
let contentType = response.headers['content-type'];
// 创建一个新的 Blob 对象
let fileBlob = new Blob([response.data], { type: contentType });
// 将 Blob 转换成可点击链接的形式
let fileUrl = window.URL.createObjectURL(fileBlob);
// 打开新窗口显示文档
window.open(fileUrl);
} catch (error) {
console.error('Error fetching or opening the document:', error);
}
}
```
这段代码展示了怎样通过 Axios 发送 GET 请求去取得远程文件,并将其转化为可以在本地查看的对象 URL。一旦有了这个 URL,就可以很容易地在一个新的标签页里打开它来进行在线预览了。
阅读全文
相关推荐


















