js处理后端返回的不同文件的流
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处理后端返回的不同文件的流的更多相关文章
- vue+antd实现PDF预览(后端返回的是文件流)
操作步骤: 第一步:下载包 npm install --save vue-pdf 第二步:导入组件 第三步:使用pdf标签进行展示,showUrl指的是访问路径 第四步:定义要用到的变量 第五步: ...
- pdfjs-dist 后端返回文件前端实现预览pdf
pdfjs-dist锁定版本号2.2.228,别的都不太好使,各种各样的报错 不锁定的时候升高版本出现pdf预览不了 引用的时候 import pdfjsLib from 'pdfjs-dist/bu ...
- js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中
ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- 关于后端下载后端返回的blob类型文件的下载
关于后端返回blob类型的文件下载记录,在请求的时候前端设置响应类型 responseType: 'blob', const blob = new Blob([r], {type: r.type}); ...
- node.js接收前端上传的文件并保存到其他位置+后端代码支持进度条
一:直接上传文件,放入body里 1.前端代码 <input type="file" onchange="sendFiles(this.files)"&g ...
- 后端返回字符流,前端处理进行excel文件导出操作
针对于这种的文件导出,最关键的是响应类型的设置,也就是responseType的设置(responseType:"arraybuffer"或者responseType:" ...
- java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)
背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...
- JS前端创建CSV或Excel文件并浏览器导出下载
长期以来,在做文件下载功能的时候都是前端通过ajax把需要生成的文件的内容参数传递给后端,后端通过Java语言将文件生成在服务器,然后返回一个文件下载的连接地址url.前端通过location.hre ...
- 用js(JavaScript-jQuery)解析XML文件 无法成功 获得XML对象,字符串一些心得
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/7822962.html 解析XML文件遇到的问题 今天秦博士叫我解析一下XML文件,将里面的所有 ...
随机推荐
- C#之引用局部变量语法(ref local)
ref Particle p = ref _particles[i]; 是 C# 的引用局部变量语法(ref local),它的作用是直接引用数组中某一项的内存地址,而不是创建该元素的副本.这在性能敏 ...
- C#之清除已经注册的事件
private static void DealA(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine($"E ...
- JVM 使用jstat分析系统的垃圾回收情况
jstat -gcutil 输出结果分析_助你了解jvm命令,查找JVM堆栈信息,分析性能问题.下面介绍一下jstat命令: jstat:虚拟机统计信息监视工具(JVM Statistics Moni ...
- MyBatis常见面试题:通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?
MyBatis常见面试题:通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗? Dao接口即Mapper接 ...
- 2025 年实用、全面的 VS Code 插件推荐!
前言 VS Code是一款由微软开源免费.轻量级.功能强大的源代码编辑器.其轻量级体现在基础安装简洁,仅含核心编辑功能.功能强大则源于它支持丰富的语言环境插件拓展,这种模块化设计让VS Code在源代 ...
- 6款超好用的AI换脸软件,一键视频直播换脸(附下载链接)
随着AIGC的火爆,AI换脸技术也被广泛应用于娱乐.广告.电影制作等领域,本期文章系统介绍了市面上超火的6款AI软件 换脸整合包收录了全部6款AI工具,请按照需要选择下载: 百度网盘:https:// ...
- python 获取mac地址
python 获取mac地址 方法一:使用socket库 使用了socket库中的ioctl函数和fcntl模块来获取MAC地址 import socket import fcntl import s ...
- 学习CAE软件有什么方法技巧?
在工程设计和制造领域,计算机辅助工程(CAE)软件已经成为不可或缺的工具.然而,学习使用这类复杂软件需要投入大量时间和精力.为了帮助您更快地掌握CAE软件,本文将分享一些高效的学习方法与技巧. 明确学 ...
- 低版本.net ueditor结合cshtml getshell
ueditor版本.net 1.3.x,不是.net 1.4.3的getshell 上传页面是这样的需要开启flash,添加照片抓包.先正常上传 改后缀提示不允许的文件类型 注意到fileNameFo ...
- 扩展若依@Excel注解,使其对字段的控制是否导出更加便捷
基于若依框架实现按角色控制 Excel 字段导出功能 一.背景介绍 在我们的项目开发中,采用了若依(RuoYi)的 Java Spring 框架进行系统搭建.若依框架提供了 @Excel 注解,通过在 ...