V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ukipoi
V2EX  ›  问与答

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

  •  
  •   ukipoi · 2018-09-07 14:51:14 +08:00 · 1294 次点击
    这是一个创建于 2288 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2018-10-16 17:55:47 +08:00
    ebingtel
        1
    ebingtel  
       2018-09-07 16:14:18 +08:00
    content-type 指定了吗?'application/vnd.android.package-archive'
    ukipoi
        2
    ukipoi  
    OP
       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
        3
    ebingtel  
       2018-09-07 19:23:35 +08:00
    @ukipoi 直接放在 static 也可以……自己现在浏览器里面试一下下载,看看是不是 content-type 的问题,是的话:
    静态文件其实不应该由 tomcat 处理,直接由外面的 nginx 服务器处理即可,通过 nginx 配置,可以给*.apk 的请求,自动加上指定的 content-type ……
    night98
        4
    night98  
       2018-09-08 01:17:36 +08:00 via Android
    放在 static 下的话,控制器直接跳转过去浏览器会默认是下载的吧,还有你这样写效率太低,扔 nginx 上面就行了。
    xiaoxinshiwo
        5
    xiaoxinshiwo  
       2018-10-16 17:55:47 +08:00
    现在是把 apk 放在 static 目录下边,直接输入 文件名.apk 下载的。不过这样子不能在 Controller 里做控制了,还是想请教一下,网页提供 apk 下载一般情况下是怎么处理的。小作坊没什么人能请教,前辈都在我实习的时候跑光了。。
    --- 并非在静态目录下就不能做拦截了啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1001 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:47 · PVG 02:47 · LAX 10:47 · JFK 13:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.