var fileformData = new FormData();
fileformData.append('file1',vm.fileListLeft[0].raw);
fileformData.append('file2',vm.fileListRight[0].raw);
axios.post(ctx + 'fire/drawing/compare',fileformData,{responseType: 'blob'}).then(function (res) {
try{
parent.vm.compareLoading = false;
}catch (e){
vm.compareLoading = false;
}
if (res.status === 200 && res.data) {
var disposition = res.headers['content-disposition'];
var contentType = res.headers['content-type'];
if(contentType.includes('json')){
var data = res.data;
var reader = new FileReader();
reader.onload = function () {
var errorInfos = JSON.parse(reader.result);
var msg = errorInfos.content;
try{
parent.vm.comparePdfShow = false;
parent.vm.compareLoading = false;
}catch (e){
vm.comparePdfShow = false;
vm.compareLoading = false;
}
vm.$message.error(msg||'操作失败,请稍后重试!');
}
reader.onerror = function (err) {
vm.$message.error('转换失败,请稍后重试!');
}
reader.readAsText(data);
}else{
try {
var fileName = decodeURI(disposition.substring(disposition.indexOf('filename=') + 9, disposition.length));
vm.fileType = vm.getFileType(fileName);
var blob = res.data;
var objectURL = window.URL.createObjectURL(blob);
if(vm.fileType == "pdf"){
try{
parent.vm.fileType = "pdf";
parent.vm.pdfUrl = ctx + 'fire/drawing/viewPdf.html?fileUrl='+objectURL;
}catch (e){
vm.fileType = "pdf";
vm.pdfUrl = ctx + 'fire/drawing/viewPdf.html?fileUrl='+objectURL;
}
}else{
try{
parent.vm.imgUrl = ctx + 'fire/drawing/viewPic.html?objectURL='+objectURL+'&fileName='+fileName;
}catch (e){
vm.imgUrl = ctx + 'fire/drawing/viewPic.html?objectURL='+objectURL+'&fileName='+fileName;
}
}
} catch (e) {
try{
parent.vm.comparePdfShow = false;
parent.vm.compareLoading = false;
}catch (e){
vm.comparePdfShow = false;
vm.compareLoading = false;
}
vm.$message.error(res.data.content||'操作失败,请稍后重试!');
}
}
} else {// 其它情况
try{
parent.vm.comparePdfShow = false;
parent.vm.compareLoading = false;
}catch (e){}
vm.$message.error(res.data.content||'操作失败,请稍后重试!');
}
}).catch(function (error) {
try{
parent.vm.comparePdfShow = false;
parent.vm.compareLoading = false;
}catch (e){}
vm.$message.error('对比出错,请稍后重试!');
});

js处理后端返回的不同文件的流的更多相关文章

  1. vue+antd实现PDF预览(后端返回的是文件流)

    操作步骤: 第一步:下载包   npm install --save vue-pdf 第二步:导入组件 第三步:使用pdf标签进行展示,showUrl指的是访问路径 第四步:定义要用到的变量 第五步: ...

  2. pdfjs-dist 后端返回文件前端实现预览pdf

    pdfjs-dist锁定版本号2.2.228,别的都不太好使,各种各样的报错 不锁定的时候升高版本出现pdf预览不了 引用的时候 import pdfjsLib from 'pdfjs-dist/bu ...

  3. js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

    ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...

  4. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  5. 关于后端下载后端返回的blob类型文件的下载

    关于后端返回blob类型的文件下载记录,在请求的时候前端设置响应类型 responseType: 'blob', const blob = new Blob([r], {type: r.type}); ...

  6. node.js接收前端上传的文件并保存到其他位置+后端代码支持进度条

    一:直接上传文件,放入body里 1.前端代码 <input type="file" onchange="sendFiles(this.files)"&g ...

  7. 后端返回字符流,前端处理进行excel文件导出操作

    针对于这种的文件导出,最关键的是响应类型的设置,也就是responseType的设置(responseType:"arraybuffer"或者responseType:" ...

  8. java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)

    背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...

  9. JS前端创建CSV或Excel文件并浏览器导出下载

    长期以来,在做文件下载功能的时候都是前端通过ajax把需要生成的文件的内容参数传递给后端,后端通过Java语言将文件生成在服务器,然后返回一个文件下载的连接地址url.前端通过location.hre ...

  10. 用js(JavaScript-jQuery)解析XML文件 无法成功 获得XML对象,字符串一些心得

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/7822962.html 解析XML文件遇到的问题 今天秦博士叫我解析一下XML文件,将里面的所有 ...

随机推荐

  1. 浅谈Java异常处理机制

    前言   在 Java 中,异常被当作对象来处理,所有的异常都有一个共同的祖先java.lang.Throwable类.Throwable有两个重要的子类Exception(异常) 和 Error(错 ...

  2. 长短期记忆(LSTM)网络模型

    一.概述   长短期记忆(Long Short-Term Memory,LSTM)网络是一种特殊的循环神经网络(RNN),专门设计用于解决传统 RNN 在处理长序列数据时面临的梯度消失 / 爆炸问题, ...

  3. MybatisPlus查询一对多list结果collection实例

    前言 查询用户信息,结果放到一个实体类里 这个实体类里有两个List<对象>字段,分别是这个用户的角色列表.岗位列表 以下仅供参考 实体类 package cn.daenx.myadmin ...

  4. kards卡组推荐——苏美隐蔽

    声明:此卡组抗快能力极差,害怕炮兵和小飞机为中后期 隐蔽核心思路: 在第一回合,尽量找杜斯团,找不到如果对方有单位,可以打一个镰刀 第二回合,①有杜斯团:打出隐蔽单位,按隐蔽顺序(附1)出,如果只有1 ...

  5. 实战干货|Spark 在袋鼠云数栈的深度探索与实践

    Spark 是一个快速.通用.可扩展的大数据计算引擎,具有高性能.易用.容错.可以与 Hadoop 生态无缝集成.社区活跃度高等优点.在实际使用中,具有广泛的应用场景: · 数据清洗和预处理:在大数据 ...

  6. 国贸股份 x 袋鼠云:推进全链业务深度数字化,为产业综合服务插上数字化翅膀

    数据治理是推动大型集团企业转型升级.提升竞争优势.实现高质量发展的重要引擎.通过全链数据结构化,实现业务对象.业务规则.业务流程数字化,推进全链业务深度数字化,夯实数据运营底座. 厦门国贸集团股份有限 ...

  7. Manjaro/Arch 彻底解决 "Too many open files":为什么你改的 limits.conf 不生效

    问题现场 当你训练模型.处理大量文件或运行高并发服务时,突然出现: Failed creating file: ... [Too many open files] 你按照标准方案修改了 /etc/se ...

  8. 使用远程IO控制器ZLAN6808-3代替PLC实现电池工业生产线自动化

    动力电池是一种能量储存装置,随着智能制造在传统制造领域的进一步渗透,作为国家战略性新兴产业,明确提出动力电池产业的智能制造发展规划,动力电池的生产已逐步从半自动化.自动化向智能化.数字化转型. 在动力 ...

  9. OpenAiTx 帮助 Gitee 项目翻译出海、开拓国际社群

    使用方式: 只需要在 https://openaitx.github.io/ 提交 Gitee 项目 URL 即可 系统会自动为你的项目 Readme, Wiki 生成翻译 20 语言,系统翻译完成后 ...

  10. java 线程知识问答

    简介 一个线程的核心线程数是4, 最大线程数是8, 有一个任务提交过来, 迅速执行王弼, 如果再来一个任务, 那么线程池是新建一个线程去执行还是会复用之前的线程? 参考链接 https://blog. ...