ios13 企业微信 pdf下载乱码解决方案

阅读: 评论:0

ios13 企业微信 pdf下载乱码解决方案

ios13 企业微信 pdf下载乱码解决方案

导入:上个星期五加班到很晚(且用了同事的ios手机做测试),在为解决一个bug而烦恼,不知道怎么修,从网上找过资料,但是并没解决方案,且有其他人遇到此问题,但并没人解决,因此写下这篇文章记录一下。

ios13企业微信点击pdf页面直接乱码了

客户的USER-AGENT

agentMozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 wxwork/3.0.14 MicroMessenger/7.0.1 Language/zh

点击下载的pdf的后台接口逻辑

OutputStream os = null;
BufferedInputStream reader = null;
try {ParamsTable params = Params();HttpServletRequest request = Request();HttpServletResponse response = Response();String encoding = "ISO-8859-1";String filename = ParameterAsString("filename");String filepath = ParameterAsString("filepath");if(!filepath.startsWith("/uploads/")){Writer().print("Error: file illegal!");return NONE;}filepath = URLDecoder.decode(filepath, encoding);String realPath = Session().getServletContext().getRealPath("/");File file = new File(realPath + filepath);if(!ists()){return "找不到指定文件";}String agent = Header("USER-AGENT");response.setContentType("application/octet-stream;charset=ISO-8859-1");if(null != agent){if(-1 != agent.indexOf("Firefox")) {response.setHeader("Content-Disposition", "attachment;filename="" + deText(filename, encoding, "B") + """);} else if(-1 != agent.indexOf("Trident") || -1 != agent.indexOf("MSIE")) {response.setHeader("Content-Disposition", "attachment;filename="" + filename + """);} else {response.setHeader("Content-Disposition", "attachment;filename="" + URLDecoder.decode(filename, encoding) + """);}} else {response.setHeader("Content-Disposition", "attachment;filename="" + URLDecoder.decode(filename, encoding) + """);}os = OutputStream();reader = new BufferedInputStream(new FileInputStream(file));py(reader, os);
} catch (IOException e) {e.printStackTrace();return "下载失败";
} finally {try{if (os != null) {reader.close();}if ( reader != null) {reader.close();}} catch(Exception e) {e.printStackTrace();}
}

看了很久,用流的形式去下载pdf一直有问题,而安卓上是没有问题,因此很难看到问题,后来,我更改他的下载的方式,直接返回路径给客户端,这样能成功了。
加多这两行代码:

if(agent.indexOf("iPhone")>0 && agent.indexOf("13")>0 ){String contextPath = ContextPath();response.sendRedirect(contextPath+filepath);
}

总结

并没找到具体的原因,有点可惜。但能解决到客户的问题,也是挺不错的。

本文发布于:2024-01-30 13:01:08,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659087120184.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:乱码   解决方案   企业   pdf
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23