在手机 Chrome 浏览器中访问接口下载使用 Java IO 流写的文件下载,下载的内容后缀为.apk 的 app 安装包,下载完成后后缀变为.zip。
电脑端的浏览器一直正常下载,没有去在意手机的浏览器,而且手机的浏览器我是用了 oppo 自带的浏览器和 QQ 浏览器都是正常下载的,直到后来用了 Chrome 浏览器时,发现下载的文件安装不了,点击后会跳转解压,而一些没有解压软件的手机会提示文件打不开等提示。
解决方案:
public void downloadApk(HttpServletResponse httpServletResponse) throws UnsupportedEncodingException {
String filePath = "你自己的文件路径";
File file = new File(filePath);
httpServletResponse.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(file.getName(), "UTF-8"));
httpServletResponse.setHeader("content-type", "application/vnd.android.package-archive");//增加了这行代码就可以在手机Chrome浏览器中访问接口下载APK了
OutputStream out;
try (InputStream in = new FileInputStream(filePath)) {
int len;
byte buffer[] = new byte[1024];
out = httpServletResponse.getOutputStream();
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
} catch (Exception e) {
logger.error("查看图片失败" + e.getMessage());
}
转载至:https://blog.csdn.net/u013067891/article/details/82967961
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于