不是很懂这方面的事情,是应该搭建一个文件服务传输吗? 希望能提供一下解决思路,顺便请教一下。windows service2012 服务器,我配置了 tomcat 的端口为 80,但是访问域名得到的还是 IIS 的首页,所以我就把服务器 IIS 的功能关闭了。请问如果不关闭 IIS 的服务,应该如何解决这个问题?(感觉 windows 服务器好复杂啊,好多东西不了解是什么用途。。。)
1
ebingtel 2018-09-07 16:14:18 +08:00
content-type 指定了吗?'application/vnd.android.package-archive'
|
2
ukipoi OP @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 下载一般情况下是怎么处理的。小作坊没什么人能请教,前辈都在我实习的时候跑光了。。 |
3
ebingtel 2018-09-07 19:23:35 +08:00
@ukipoi 直接放在 static 也可以……自己现在浏览器里面试一下下载,看看是不是 content-type 的问题,是的话:
静态文件其实不应该由 tomcat 处理,直接由外面的 nginx 服务器处理即可,通过 nginx 配置,可以给*.apk 的请求,自动加上指定的 content-type …… |
4
night98 2018-09-08 01:17:36 +08:00 via Android
放在 static 下的话,控制器直接跳转过去浏览器会默认是下载的吧,还有你这样写效率太低,扔 nginx 上面就行了。
|
5
xiaoxinshiwo 2018-10-16 17:55:47 +08:00
现在是把 apk 放在 static 目录下边,直接输入 文件名.apk 下载的。不过这样子不能在 Controller 里做控制了,还是想请教一下,网页提供 apk 下载一般情况下是怎么处理的。小作坊没什么人能请教,前辈都在我实习的时候跑光了。。
--- 并非在静态目录下就不能做拦截了啊 |