请教一下,使用 HttpServletResponse 流传输 apk 文件,下载之后解析软件包是出现问题应该如何解决?或者说传输 apk 应该使用什么样的解决方式?

2018-09-07 14:51:14 +08:00
 ukipoi

不是很懂这方面的事情,是应该搭建一个文件服务传输吗? 希望能提供一下解决思路,顺便请教一下。windows service2012 服务器,我配置了 tomcat 的端口为 80,但是访问域名得到的还是 IIS 的首页,所以我就把服务器 IIS 的功能关闭了。请问如果不关闭 IIS 的服务,应该如何解决这个问题?(感觉 windows 服务器好复杂啊,好多东西不了解是什么用途。。。)

1286 次点击
所在节点    问与答
5 条回复
ebingtel
2018-09-07 16:14:18 +08:00
content-type 指定了吗?'application/vnd.android.package-archive'
ukipoi
2018-09-07 17:19:49 +08:00
@ebingtel 指定了
```java
res.setHeader("content-type", "application/vnd.android.package-archive");
res.setHeader("content-type", "application/vnd.android.package-archive");
res.setContentType("application/vnd.android.package-archive");
res.setHeader("Content-Disposition", "attachment;filename=" + fileName);
byte[] buff = new byte[1024];
BufferedInputStream bis = null;
OutputStream os = null;
try {
os = res.getOutputStream();
bis = new BufferedInputStream(new FileInputStream(new File("C://"
+ fileName)));
int i = bis.read(buff);
while (i != -1) {
os.write(buff, 0, buff.length);
os.flush();
i = bis.read(buff);
}
}
```
现在是把 apk 放在 static 目录下边,直接输入 文件名.apk 下载的。不过这样子不能在 Controller 里做控制了,还是想请教一下,网页提供 apk 下载一般情况下是怎么处理的。小作坊没什么人能请教,前辈都在我实习的时候跑光了。。
ebingtel
2018-09-07 19:23:35 +08:00
@ukipoi 直接放在 static 也可以……自己现在浏览器里面试一下下载,看看是不是 content-type 的问题,是的话:
静态文件其实不应该由 tomcat 处理,直接由外面的 nginx 服务器处理即可,通过 nginx 配置,可以给*.apk 的请求,自动加上指定的 content-type ……
night98
2018-09-08 01:17:36 +08:00
放在 static 下的话,控制器直接跳转过去浏览器会默认是下载的吧,还有你这样写效率太低,扔 nginx 上面就行了。
xiaoxinshiwo
2018-10-16 17:55:47 +08:00
现在是把 apk 放在 static 目录下边,直接输入 文件名.apk 下载的。不过这样子不能在 Controller 里做控制了,还是想请教一下,网页提供 apk 下载一般情况下是怎么处理的。小作坊没什么人能请教,前辈都在我实习的时候跑光了。。
--- 并非在静态目录下就不能做拦截了啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487114

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX