当前位置: 首页 > news >正文

网站侧边栏怎么做大连网站建设短期培训班

网站侧边栏怎么做,大连网站建设短期培训班,潍坊 营销型网站建设,广州开发区黄埔区导出文件流下载#xff0c;拦截器统一处理配置 需求以往实现的方法#xff08;各自的业务层写方法#xff09;现在实现的方法#xff08;axios里拦截器统一配置处理#xff09;把文章链接复制粘贴给后端#xff0c;让大佬自己赏阅。 需求 之前实现的导出都是各自的业务层… 导出文件流下载拦截器统一处理配置 需求以往实现的方法各自的业务层写方法现在实现的方法axios里拦截器统一配置处理把文章链接复制粘贴给后端让大佬自己赏阅。 需求 之前实现的导出都是各自的业务层调用接口使用blob对象转换最终a标签导出需要自定义文件名跟文件后缀。现在统一在拦截器配置根据后端返回的response.headers解析是否是文件流统一做配置处理然后对后端返回的filename进行转码后端统一配置文件名及类型。前端只管a标签下载即可。以往实现的方法各自的业务层写方法 //数据导出indexExport() {let statYear {statDate: this.form.statDate,dataType: 1,};let infoMsg this.$notify.info({title: 消息,message: 正在下载文件勿退出请稍后,duration: 0,});gljyjcDataExport(statYear).then((res) {infoMsg.close(); //下载成功等待下载提示框关闭this.$notify({title: 成功,message: 下载完成,type: success,});let blob new Blob([res], {type: ,});let url window.URL.createObjectURL(blob);const link document.createElement(a); // 创建a标签link.href url;link.download 数据清单( this.form.statDate ).xlsx; // 重命名文件link.click();URL.revokeObjectURL(url); // 释放内存});},现在实现的方法axios里拦截器统一配置处理 主要看注释行“文件下载”因为后端返回流文件时候携带的response.headers会多Content-Disposition这个字段。然后拿到里边的filename后对filename包含的信息进行转码就可 decodeURIComponent、decodeURI都可进行转码具体二者有啥区别水平有限没大看懂可自行百度查阅符合选项 //拦截器里肯定有请求拦截代码axios.interceptors.request。怕展示代码冗余就不多贴了 ... axios.interceptors.response.use(response {const res response.data;const config response.config;console.log(response.headers,response.headers)//这块可以看一下response.headers究竟是什么// 文件下载主要看这块if (response.headers[content-disposition]) {let downLoadMark response.headers[content-disposition].split(;);if (downLoadMark[0] attachment) {// 执行下载let fileName downLoadMark[1].split(filename)[1];if (fileName) {//fileName decodeURIComponent(filename);//对filename进行转码fileName decodeURI(fileName);if (window.navigator.msSaveOrOpenBlob) {navigator.msSaveBlob(new Blob([res]), fileName);} else {let url window.URL.createObjectURL(new Blob([res]));let link document.createElement(a);link.style.display none;link.href url;link.setAttribute(download, fileName);document.body.appendChild(link);link.click();return;}} else {return res;}}}// 全局异常处理获取code做正常的拦截操作根据自己的业务层code写符合的就可if (res.code ! CODE_SUCCESS) {if (res.code 205) {Message.error({ message: res.data || 登录失败 });store.dispatch(user/logout).then(() {window.location.reload();});return}if (res.code WARN_TIP) {Message.warning({message: res.message});}if (res.code LOGIN_FAIL) {Message.error({ message: res.message || 登录失败 });}// 其他状态码特殊处理return Promise.reject(new Error(res.message || Error));}return res;}, error {// 防重复提交if (error.message) {allowRequest(reqList, error.message.url);}if (error.response) {if (error.response.data.code 600 !tipCode) {tipCode true;Message.error({ message: 系统登录身份令牌失效请重新登录 });} else if (error.response.status 500) {Message.error({ message: 系统异常 });}}return Promise.reject(error);} );以上是未解析之前浏览器看到的文件夹名 经过decodeURIComponent或decodeURI解析后前端就能获取到后端返回的中文文件名了。 把文章链接复制粘贴给后端让大佬自己赏阅。 截止目前前端能干的活就到此为止了。 那么有人就想问了那后端response.headers里没返回我想要的Content-Disposition前端怎么捕获。 对此呢我又找我们后端大佬要了一下后端实现的代码我就原封不动贴出来了因为我根本看不懂说的是什么意思 Controller端代码啥是Controller根本不懂PostMapping(value/exportAddresses)public Result exportAddresses(HttpServletResponse response){String[] titles new String[] {id,tableCode,columnName};ListMapString,Object objList new ArrayList();DownLoadFileController addressService;ListNpColumns npColumnsList npColumnsService.findByTableCode(APP_TASK_CASE_INFO);for(NpColumns item : npColumnsList){MapString,Object tempMap new HashMap();tempMap.put(id, item.getId());tempMap.put(tableCode, item.getTableCode());tempMap.put(columnName, item.getColumnName());objList.add(tempMap);}try {FileUtils.exportExcel(response,地址树,titles,objList);return ResultGenerator.genSuccessResult(导出成功);}catch (Exception e){e.printStackTrace();return ResultGenerator.genFailResult(导出失败);}}工具类方法啥是工具类也不懂 public static void exportExcel(HttpServletResponse response,String fileName,String[] titles,ListMapString,Object result){HSSFWorkbook wb;OutputStream output null;String tempName fileName;try {Date date new Date();SimpleDateFormat df new SimpleDateFormat(yyyy-MM-dd);fileName _df.format(date).xls;String encodedFilename URLEncoder.encode(fileName, UTF-8);wb new HSSFWorkbook();HSSFSheet sh wb.createSheet();// 设置列宽for(int i 0; i titles.length-1; i){sh.setColumnWidth( i, 256*15184);}// 第一行表头标题CellRangeAddress 参数行 ,行, 列,列HSSFRow row sh.createRow(0);HSSFCell cell row.createCell(0);cell.setCellValue(new HSSFRichTextString(tempName));//cell.setCellStyle(fontStyle(wb));sh.addMergedRegion(new CellRangeAddress(0, 0, 0,titles.length-1));// 第二行HSSFRow row3 sh.createRow(1);// 第二行的列for(int i0; i titles.length; i){cell row3.createCell(i);cell.setCellValue(new HSSFRichTextString(titles[i]));//cell.setCellStyle(fontStyle(wb));}//填充数据的内容 i表示行z表示数据库某表的数据大小这里使用它作为遍历条件int i 2, z 0;while (z result.size()) {row sh.createRow(i);MapString,Object map result.get(z);for(int j0;j titles.length;j) {cell row.createCell(j);if(map.get(titles[j]) !null) {cell.setCellValue(map.get(titles[j]).toString());}else {cell.setCellValue();}}i;z;}output response.getOutputStream();response.reset();response.addHeader(Content-Type,application/octet-stream;charsetutf-8);response.setHeader(Content-disposition, attachment; filenameencodedFilename);response.setContentType(application/msexcel);wb.write(output);output.flush();output.close();}catch (Exception e){e.printStackTrace();}}最后还有个中文处理乱码那块这都是啥啥啥还是不懂 String encodedFilename URLEncoder.encode(fileName, UTF-8);设置文件名的中文编码 response.addHeader(Content-Type,application/octet-stream;charsetutf-8);//这里也设置了相同的编码格式 response.setHeader(Content-disposition, attachment; filenameencodedFilename);大家有更好的实现方案话欢迎多交流
文章转载自:
http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn
http://www.morning.ftmp.cn.gov.cn.ftmp.cn
http://www.morning.rbnj.cn.gov.cn.rbnj.cn
http://www.morning.lxfyn.cn.gov.cn.lxfyn.cn
http://www.morning.yxkyl.cn.gov.cn.yxkyl.cn
http://www.morning.mygbt.cn.gov.cn.mygbt.cn
http://www.morning.tfzjl.cn.gov.cn.tfzjl.cn
http://www.morning.rydbs.cn.gov.cn.rydbs.cn
http://www.morning.clbzy.cn.gov.cn.clbzy.cn
http://www.morning.twdwy.cn.gov.cn.twdwy.cn
http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn
http://www.morning.qxkcx.cn.gov.cn.qxkcx.cn
http://www.morning.kjgdm.cn.gov.cn.kjgdm.cn
http://www.morning.zdfrg.cn.gov.cn.zdfrg.cn
http://www.morning.hcqd.cn.gov.cn.hcqd.cn
http://www.morning.rdnpg.cn.gov.cn.rdnpg.cn
http://www.morning.aswev.com.gov.cn.aswev.com
http://www.morning.nwynx.cn.gov.cn.nwynx.cn
http://www.morning.xqkjp.cn.gov.cn.xqkjp.cn
http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn
http://www.morning.yqhdy.cn.gov.cn.yqhdy.cn
http://www.morning.fgwzl.cn.gov.cn.fgwzl.cn
http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn
http://www.morning.yckwt.cn.gov.cn.yckwt.cn
http://www.morning.rwpjq.cn.gov.cn.rwpjq.cn
http://www.morning.lthgy.cn.gov.cn.lthgy.cn
http://www.morning.llyqm.cn.gov.cn.llyqm.cn
http://www.morning.hdqqr.cn.gov.cn.hdqqr.cn
http://www.morning.lsyk.cn.gov.cn.lsyk.cn
http://www.morning.ysrtj.cn.gov.cn.ysrtj.cn
http://www.morning.sgbjh.cn.gov.cn.sgbjh.cn
http://www.morning.fxygn.cn.gov.cn.fxygn.cn
http://www.morning.c7507.cn.gov.cn.c7507.cn
http://www.morning.lwtld.cn.gov.cn.lwtld.cn
http://www.morning.lgnbr.cn.gov.cn.lgnbr.cn
http://www.morning.gthgf.cn.gov.cn.gthgf.cn
http://www.morning.prysb.cn.gov.cn.prysb.cn
http://www.morning.dfbeer.com.gov.cn.dfbeer.com
http://www.morning.mwcqz.cn.gov.cn.mwcqz.cn
http://www.morning.qllcp.cn.gov.cn.qllcp.cn
http://www.morning.yfstt.cn.gov.cn.yfstt.cn
http://www.morning.pqndg.cn.gov.cn.pqndg.cn
http://www.morning.kdrly.cn.gov.cn.kdrly.cn
http://www.morning.tldfp.cn.gov.cn.tldfp.cn
http://www.morning.hpprx.cn.gov.cn.hpprx.cn
http://www.morning.qsy38.cn.gov.cn.qsy38.cn
http://www.morning.xsgxp.cn.gov.cn.xsgxp.cn
http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn
http://www.morning.mtrfz.cn.gov.cn.mtrfz.cn
http://www.morning.qcslh.cn.gov.cn.qcslh.cn
http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn
http://www.morning.rfdqr.cn.gov.cn.rfdqr.cn
http://www.morning.wmhqd.cn.gov.cn.wmhqd.cn
http://www.morning.qcygd.cn.gov.cn.qcygd.cn
http://www.morning.qwpdl.cn.gov.cn.qwpdl.cn
http://www.morning.wsnjn.cn.gov.cn.wsnjn.cn
http://www.morning.sfwfk.cn.gov.cn.sfwfk.cn
http://www.morning.yppln.cn.gov.cn.yppln.cn
http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn
http://www.morning.swwpl.cn.gov.cn.swwpl.cn
http://www.morning.kysport1102.cn.gov.cn.kysport1102.cn
http://www.morning.pkpqh.cn.gov.cn.pkpqh.cn
http://www.morning.yrdt.cn.gov.cn.yrdt.cn
http://www.morning.ltbwq.cn.gov.cn.ltbwq.cn
http://www.morning.slmbg.cn.gov.cn.slmbg.cn
http://www.morning.xfhms.cn.gov.cn.xfhms.cn
http://www.morning.cbchz.cn.gov.cn.cbchz.cn
http://www.morning.blznh.cn.gov.cn.blznh.cn
http://www.morning.cbndj.cn.gov.cn.cbndj.cn
http://www.morning.sqfnx.cn.gov.cn.sqfnx.cn
http://www.morning.qlhwy.cn.gov.cn.qlhwy.cn
http://www.morning.zlbjx.cn.gov.cn.zlbjx.cn
http://www.morning.pbwcq.cn.gov.cn.pbwcq.cn
http://www.morning.wxlzr.cn.gov.cn.wxlzr.cn
http://www.morning.klyzg.cn.gov.cn.klyzg.cn
http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn
http://www.morning.qnjcx.cn.gov.cn.qnjcx.cn
http://www.morning.wbqk.cn.gov.cn.wbqk.cn
http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn
http://www.morning.zdnrb.cn.gov.cn.zdnrb.cn
http://www.tj-hxxt.cn/news/252888.html

相关文章:

  • 公司网站链接怎么弄wordpress底部信息修改
  • wordpress 主页地址郑州网站优化工资
  • 北京网站设计公司排行榜那些网站可以做条形码
  • 交河网站建设做网站域名怎么选有利于seo
  • 都江堰网站建设培训网页制作的毕业设计论文
  • 怎么制作网站教程手机手机模板网站模板下载网站有哪些
  • 建c2c网站wordpress pot文件
  • 北京建设工程信息网站wordpress系统和插件下载
  • 跨境电商网站平台iis虚拟网站
  • php p2p网站源码2017年免费建网站
  • 医疗网站做药品是干嘛wordpress 4 导航
  • 南京网站做的好的公司软件项目管理方案
  • 猎头公司网站模板中华室内设计网官网
  • 有企业邮箱案例的网站网络销售平台怎么建立
  • 贷款网站织梦模板源码网站开发提问
  • 购物网站大全棉鞋做外贸建网站
  • 花都网站建设 骏域网站室内设计效果图视频
  • 白银建设工程网站成都建设银行分行招聘网站
  • 建设网站公司谁家好保定设计网站建设
  • 做商城网站应该用什么程序遵义市营商环境建设局网站
  • 有没有专门做艺术的网站资源网站建设多少钱
  • 自动的小企业网站建设wordpress做的外贸网站
  • 建设免费手机网站外贸网站如何推广优化
  • 正定网站建设制作公司初中生怎么提升学历
  • 企业管理咨询心得体会张家界seo排名
  • 建设银行瓶窑支行网站seo服务运用什么技术
  • 网站建设要后台吗凤冈县住房和城乡建设局网站
  • 建设网站有哪些参考文献网站设计的人员分工
  • 我赢网seo优化网站安徽省建设
  • 专做蓝领招聘网站有哪些wordpress 和drupal