zoukankan      html  css  js  c++  java
  • ResponseEntity 文件下载 在IE浏览器报错,其他浏览器正常

    //后台代码
    @RequestMapping(value="/fileDownMeth",produces = "application/octet-stream;charset=UTF-8") public ResponseEntity<byte[]> download(HttpServletRequest request, @RequestParam(required=false) String url, @RequestParam(required=false) String filename, Model model)throws Exception {//下载文件路径 String paths=SystemPath.getUploadPath(); url = paths +"/"+ url; File file = new File(url); //下载显示的文件名,解决中文名称乱码问题 String downloadFielName = new String(filename.getBytes("UTF-8"),"iso-8859-1"); String agent = request.getHeader("User-Agent").toUpperCase(); boolean isMSIE = ((agent != null && agent.indexOf("MSIE") != -1 ) || ( null != agent && -1 != agent.indexOf("LIKE GECKO"))); HttpHeaders headers = new HttpHeaders(); //application/octet-stream : 二进制流数据(最常见的文件下载)。 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); if(isMSIE) {//IE
            //解决IE浏览器 下载会出现文件名中文乱码
    downloadFielName = new String(filename.getBytes("GBK"), "iso-8859-1"); headers.setContentDispositionFormData("attachment", downloadFielName); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK); } headers.setContentDispositionFormData("attachment", downloadFielName); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED); }

    下图是因为IE不支持201状态,所以判断浏览器类型 为IE浏览器走if(isMSIE)中的返回

    //前台方法
    //
    下载上传的文件 urls:文件路径;fName:文件名称 var downFiles = function (urls,fName){ var fURI= decodeURI(urls); fName=decodeURI(fName); window.location.href=ctx+"/sys/filedownblock/fileDownMeth?url="+encodeURI(encodeURI(fURI))+"&filename="+encodeURI(encodeURI(fName)); }
  • 相关阅读:
    数据加密算法详解
    自定义标签+阻尼动画+圆角图片+titleBar随滑动渐隐和显示
    Android MVP Plugin,一键完成MVP结构代码编写
    jquery-validate校验
    C# 后台获取请求来源、文件下载
    【通用邮件发送】C# QQ 网易邮箱
    【asp.net mvc】 扩展 htmlhelper 实现分页
    在MVC5中使用Ninject 依赖注入
    c# txt 文件上传、写入TXT文件、创建图形验证码
    uploadify图片上传配置
  • 原文地址:https://www.cnblogs.com/ljc1212/p/14338482.html
Copyright © 2011-2022 走看看