vue项目 下载表格 java后台返回的是信息流表格如何下载解决乱码

主要是在请求参数后面加上{responseType: ‘blob‘}this.$http.get(this.api.export, {    params: this.info,    responseType: ‘blob‘}).then(res => {    let blob = new Blob([res.data], {type: "application/vnd.ms-excel"});    let objectUrl = URL.createObjectURL(blob);    window.location.href = objectUrl;})

-----

1.有时候,前端页面上需要展示后台接口返回给我们的一个二进制文件,比如图片,那么我们应该如何下载呢

js中有个Blob对象,一个 Blob对象表示一个不可变的, 原始数据的类似文件对象。Blob表示的数据不一定是一个JavaScript原生格式 blob对象本质上是js中的一个对象,里面可以储存大量的二进制编码格式的数据。

2.创建Blob 对象

var debug = {hello: "world"};

var blob = new Blob([‘后台返回的二进制文件‘],{type : ‘该文件是什么类型的文件(MIME)‘});

3.常用的文件类型有(MIME),根据需要返回怎样的文件,就填写怎样的MIME类型,也可以不写,写的话指定了下载的文件格式,不写,文件是什么格式,下载就是什么格式,根据项目需求.

后缀名       MIME名称

*.3gpp    audio/3gpp, video/3gpp

*.ac3    audio/ac3

*.asf       allpication/vnd.ms-asf

*.au           audio/basic

*.css           text/css

*.csv           text/csv

*.doc    application/msword

*.dot    application/msword

*.dtd    application/xml-dtd

*.dwg    image/vnd.dwg

*.dxf      image/vnd.dxf

*.gif            image/gif

*.htm    text/html

*.html    text/html

*.jp2            image/jp2

*.jpe       image/jpeg

*.jpeg    image/jpeg

*.jpg          image/jpeg

*.js       text/javascript, application/javascript

*.json    application/json

*.mp2    audio/mpeg, video/mpeg

*.mp3    audio/mpeg

*.mp4    audio/mp4, video/mp4

*.mpeg    video/mpeg

*.mpg    video/mpeg

*.mpp    application/vnd.ms-project

*.ogg    application/ogg, audio/ogg

*.pdf    application/pdf

*.png    image/png

*.pot    application/vnd.ms-powerpoint

*.pps    application/vnd.ms-powerpoint

*.ppt    application/vnd.ms-powerpoint

*.rtf            application/rtf, text/rtf

*.svf           image/vnd.svf

*.tif         image/tiff

*.tiff       image/tiff

*.txt           text/plain

*.wdb    application/vnd.ms-works

*.wps    application/vnd.ms-works

*.xhtml    application/xhtml+xml

*.xlc      application/vnd.ms-excel

*.xlm    application/vnd.ms-excel

*.xls           application/vnd.ms-excel

*.xlt      application/vnd.ms-excel

*.xlw      application/vnd.ms-excel

*.xml    text/xml, application/xml

*.zip            aplication/zip

*.xlsx     application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

原文地址:https://www.cnblogs.com/jintaostudy/p/9550245.html

时间: 2024-11-09 21:38:35

vue项目 下载表格 java后台返回的是信息流表格如何下载解决乱码的相关文章

java项目案例 java项目源码 java后台框架源码

获取[下载地址]   QQ: 313596790   [免费支持更新]支持三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体A 代码生成器(开发利器);      增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可

eclipse中部署web项目时报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener的解决方法

解决方案: 1.右键点击项目--选择Properties,选择Deployment Assembly,在右边点击Add按钮,在弹出的窗口中选择Java Build Path Entries 2.点击Next,选择Maven Dependencies 3.点击Finish,然后可以看到已经把Maven Dependencies添加到Web应用结构中了 操作完后,重新部署工程,不再报错了.然后我们再到.metadata\.plugins\org.eclipse.wst.server.core\tmp

encodeURIComponent编码后java后台解码乱码的解决

解决方法一: JavaScript: window.self.location="searchbytext.action?searchtext="+encodeURIComponent(encodeURIComponent(seartext)); java: searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8"); 为什么要两次编码的原因: 后台java代码直接request.getParameter(&q

vue项目刷新当前页面

场景: 有时候我们在vue项目页面做了一些操作,需要刷新一下页面. 解决的办法及遇到的问题: this.$router.go(0).这种方法虽然代码很少,只有一行,但是体验很差.页面会一瞬间的白屏,体验不是很好 用vue-router重新路由到当前页面,页面是不进行刷新的. location.reload().这种也是一样,画面一闪,体验不是很好 推荐解决方法: 用provide / inject 组合原理:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的

java之后台返回json格式字符串,前台接受并转为json文件

作为一个菜鸟,做项目真的好困难呀,这两天被一个问题困了两天,终于解决了,但是也不算太完美.首先,先说一下问题吧,根据后台返回的值,前台接受并作出一个折线图. 最初,在后台根据从数据库中的值,强制拼成了json格式的字符串,利用model返回给前台,前台Ajax  success:function(data)data接收数据,这是应该接收的是字符串,由于折线图中series中的data为非字符串,(这个是后来百度才知道的),就没有成功.然后就想后台直接将数据转换成json,然后返回前台,利用里JS

正确启动从GitHub上下载的vue项目:vueAdmin-template

先讲重点,后上相关资料: 遇到的问题:在启动从GitHub上下载的vue项目:vueAdmin-template 时报错:'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 报错如下: 报错原因:直接从GitHub上下载下来的项目缺少依赖,即:项目里没有node_modules文件夹 解决办法:运行 npm install 命令下载依赖即可. 然后运行 npm run dev 即可启动项目. ********************************分割线**

java 线程返回值,优先级,后台线程 示例代码

ava 线程返回值,休眠,优先级,后台线程  示例代码 package org.rui.thread.basic; import java.util.ArrayList; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Execu

从github下载的vue项目启动宝Cannot Get错误

从github下载的vue项目启动宝Cannot Get错误,网上参考出现该错误来源很多,这里先总结遇到的第一个解决方法. 参考地址: https://www.cnblogs.com/anns/p/7457952.html 代码修改如下: 在config->index.js中修改 assetsPublicPath: '/', 为 assetsPublicPath: './', 再执行 npm run dev ,问题解决 build: { env: require('./prod.env'), i

vue项目中利用popstate处理页面返回操作

需求背景:项目中需要做一个返回确认,避免用户误触返回键而退出当前页面. 原理:利用history和浏览器刷新popstate状态 实现: 1.在mounted() 阶段判断并添加popstate事件监听,History.pushState()(参数:一个状态对象,一个标题(现在被忽略了),以及一个可选的URL地址) 2.在methods里定义监听操作函数 3.页面销毁时,取消监听.(注意:一定要取消监听,否则其他vue路由页面也会被监听) 原文地址:https://www.cnblogs.com