前端解析文件流

第一种方法,转blob对象

this.$axios({
   
  url: `/md2api/attachment/c/${
     val.code}`,
  method: "GET",
  responseType: 'blob',   //设置响应格式
  headers: {
   
    "Content-Type": "application/x-www-form-urlencoded",
  },
})
.then(function (response) {
   
  let b = new Blob([response.data]);     //拿到文件流下载对象
  let url = window.URL.createObjectURL(b)
### 实现前端OFD文件流在线预览的技术方案 为了实现在前端网页中对OFD文件流的在线预览,可以采用基于Vue.js的前端OFD文件预览组件库。此组件库不仅能够处理OFD文件的直接预览,还能解决一些常见的兼容性和显示问题[^1]。 #### 技术栈与依赖项 - **框架**: Vue.js作为主要开发框架,提供了良好的双向数据绑定机制以及组件化开发模式。 - **工具链**: - Webpack用于模块打包和资源管理; - Babel编译ES6+语法至浏览器可识别版本; - npm/yarn来管理和安装第三方依赖包。 #### 组件库特性 该组件库具备如下特点: - 支持OFD文件的即时加载与渲染; - 解决了原始包中存在的某些特定类型的OFD文件无法被正确解析的问题; - 针对印章等特殊元素进行了优化,确保其能按照预期展示给用户查看[^2]; #### 构建过程 对于希望集成这个功能的应用程序来说,只需要执行`npm run lib`命令即可完成整个组件库的构建工作。这会生成一个可以直接嵌入到任何HTML页面中的独立JS文件。 #### 文件流处理逻辑 当接收到服务器端返回的OFD文件二进制流时,可以通过创建Blob对象并将其转换为URL的方式,在新窗口或标签页内打开对应的OFD文档进行浏览。具体实现方式参见下面给出的例子代码片段: ```javascript function previewOfdFileStream(fileStream) { const blob = new Blob([fileStream], { type: 'application/octet-stream' }); const urlCreator = window.URL || window.webkitURL; const imageUrl = urlCreator.createObjectURL(blob); // 打开新的tab或者iframe去呈现ofd内容 var routeData = this.$router.resolve({ path: '/ofd/preview', query: { fileUrl:imageUrl } }); window.open(routeData.href, '_blank'); } ``` 上述函数接收来自服务端响应体内的OFD文件流参数,并利用Vue Router导航API跳转至专门设计用来承载OFD阅读器界面的新路由地址上[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值