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

网页界面清空筛选下载seo经典案例分析

网页界面清空筛选下载,seo经典案例分析,个人做盈利慈善网站,软件工程师年薪多少场景背景 1.一般来说,都是使用get请求后台接口,如此后台返回文件流于浏览器,则可直接下载。 2.那么除一般情况,就有特殊情况,比如你的请求接口参数特别长,此时便不可使用get请求,get请求的参数…

场景背景

1.一般来说,都是使用get请求后台接口,如此后台返回文件流于浏览器,则可直接下载。

2.那么除一般情况,就有特殊情况,比如你的请求接口参数特别长,此时便不可使用get请求,get请求的参数长度是有限的。那么就使用到本文的解决方案。

废话不多说,直接撸代码!!!

一 JAVA后台接口示例

    /*** 下载文件** @param request  request请求对象* @param response response相应对象* @param userVO     请求参数-接收前端formData对象*/@RequestMapping("/download")@ResponseBodypublic void downloadFile(HttpServletRequest request, HttpServletResponse response, UserVO userVO) throws IOException {//得到要下载的文件名String fileName = request.getParameter("filename");fileName = new String(fileName.getBytes("iso8859-1"), StandardCharsets.UTF_8);//上传的文件都是保存在/WEB-INF/upload目录下的子目录当中String fileSaveRootPath = request.getServletContext().getRealPath("/WEB-INF/upload");//通过文件名找出文件的所在目录String path = findFileSavePathByFileName(fileName, fileSaveRootPath);//得到要下载的文件File file = new File(path + "\\" + fileName);//如果文件不存在if (!file.exists()) {request.setAttribute("message", "您要下载的资源已被删除!!");return;}//处理文件名String realName = fileName.substring(fileName.indexOf("_") + 1);//设置响应头,控制浏览器下载该文件,此处的文件名要进行编码处理否则前端显示会乱码response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realName, String.valueOf(StandardCharsets.UTF_8)));try (//读取要下载的文件,保存到文件输入流FileInputStream in = new FileInputStream(path + "\\" + fileName);//创建输出流OutputStream out = response.getOutputStream()) {//创建缓冲区byte[] buffer = new byte[1024];int len = 0;//循环将输入流中的内容读取到缓冲区当中while ((len = in.read(buffer)) > 0) {//输出缓冲区的内容到浏览器,实现文件下载out.write(buffer, 0, len);}} catch (IOException e) {throw new RuntimeException(e);}}

二 前端代码示例

function exportFn() {var userVO = new FormData();userVO.append('id', id)userVO.append('name', name)ax({method: 'post',url: baseUrl+"/download"),data: userVO,//重要:相应类型必须为blobresponseType: 'blob'}).then(function (res) {var contentDisposition = decodeURI(res.headers["content-disposition"]);var fileRegex = /([^(filename=)]+\.xlsx?)$/g;var result = contentDisposition.match(fileRegex);var fileName = '检查率统计.xlsx';if (result.length > 0) {fileName = result[0]}var blob = new Blob([res.data]);var url = window.URL.createObjectURL(blob); // 创建 url 并指向 blobvar a = document.createElement('a');a.href = url;a.download = fileName;a.click();window.URL.revokeObjectURL(url); // 释放该 url$("input[name=CSRFTid]").hide()});
}

 注意事项:

一 后台文件名需要进行编码操作

//设置响应头,控制浏览器下载该文件,此处的文件名要进行编码处理否则前端显示会乱码
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realName, String.valueOf(StandardCharsets.UTF_8)));

二 前端文件名称进行解码操作

//从header中获取到包含文件名的信息进行解码操作
var contentDisposition = decodeURI(res.headers["content-disposition"]);

三 前端获取文件名

//从header中取得包含文件名的信息并进行解码
var contentDisposition = decodeURI(res.headers["content-disposition"]);
//匹配文件名的正则
var fileRegex = /([^(filename=)]+\.xlsx?)$/g;
var result = contentDisposition.match(fileRegex);
var fileName = '检查率统计.xlsx';
//取得文件名并赋值
if (result.length > 0) {fileName = result[0]
}

后语:

至此,大功告成!!!

http://www.tj-hxxt.cn/news/40047.html

相关文章:

  • 德州制作网站哪家最专业千锋教育前端学费多少
  • 辽宁省网站备案系统知乎关键词排名工具
  • 单位网站建设收费标准搜索网站排行榜
  • 创建网站需要哪些要素什么叫做关键词
  • 什么是互联网行业宁德seo优化
  • 酒泉网站建设推广博客网
  • 深圳做步步高的公司网站荥阳网站优化公司
  • wordpress newsletter 插件seo推广的常见目的有
  • 网站建设时间表百度统计
  • 如何使网站做的更好西安今天刚刚发生的新闻
  • 旅游网站开发背景意义南宁网络推广培训机构
  • 运输 织梦网站模板草莓永久地域网名入2022
  • 帝国cms 网站地图标签百度收录提交工具
  • 开原网站制作公司爱站网长尾关键词挖掘查询工具
  • 如何建立和设计公司网站惠州疫情最新消息
  • 武汉app网站开发产品关键词大全
  • 启东做网站的网络公司有哪些电商平台怎么运营的
  • WordPress模板购买过程丈哥seo博客
  • 网站域名备案授权书公司网站seo公司
  • 太原网站模板seo搜索引擎优化ppt
  • 做网站推广员百度排名优化软件
  • 自己做网站用花钱么开发外包网站
  • 沧州网站建设的集成商营销网站案例
  • 网站空白模板下载软文营销网
  • 网站管理助手 phpmyadmin重庆网站制作公司
  • 个人网站建设及实现毕业论文域名申请哪家好
  • 公司网站上面的动画怎么做应用商店关键词优化
  • 个人房屋做民宿在哪个网站网站优化公司认准乐云seo
  • 找做网站的个人设计网站都有哪些
  • 安徽做网站找谁web网址