在Android默认浏览器中下载文件时出错,java.io.IOException:写入失败

在Android默认浏览器中下载文件时出错,java.io.IOException:写入失败,java,android,file,browser,download,Java,Android,File,Browser,Download,我的资源目录中有.apk文件,我想直接从移动设备下载它 使用Chrome或在PC上试用时一切正常,但使用默认Android浏览器时,我会得到一个.htm文件和一个: ClientBortException:java.io.IOException:写入失败 我不知道发生了什么,也不知道这是不是浏览器的错误 在中的某些循环后引发异常: 写(outputByte,04096) 有什么建议吗?谢谢 这是我的代码: @RequestMapping(method = RequestMethod.POST)

我的资源目录中有.apk文件,我想直接从移动设备下载它

使用Chrome或在PC上试用时一切正常,但使用默认Android浏览器时,我会得到一个.htm文件和一个:

ClientBortException:java.io.IOException:写入失败

我不知道发生了什么,也不知道这是不是浏览器的错误

在中的某些循环后引发异常:

写(outputByte,04096)

有什么建议吗?谢谢

这是我的代码:

 @RequestMapping(method = RequestMethod.POST)
public String download(@ModelAttribute("apkDownload") @Valid ApkDownloadDTO apkDownload, ModelMap model, HttpServletRequest request,
    HttpServletResponse response, BindingResult result) {


InputStream is = ApkDownloadController.class.getResourceAsStream("/apk/mine.apk");


try {

    response.addHeader("Content-Description", "File Transfer");
    response.addHeader("Content-Type", " application/vnd.android.package-archive");
    response.addHeader("Content-Disposition", "attachment; filename=mine.apk");
    response.addHeader("Content-Transfer-Encoding", "binary");

    ServletOutputStream out = response.getOutputStream();
    byte[] outputByte = new byte[4096];

    while (is.read(outputByte, 0, 4096) != -1) {
    out.write(outputByte, 0, 4096);
    }
    is.close();
    out.flush();
    out.close();

} catch (IOException e) {
    log.error(e);
} finally {
    try {
    is.close();
    } catch (IOException e) {
    log.error(e);
    }
}
return null;

}

尝试使用其他浏览器,而不是默认浏览器, e、 g UC浏览器、Chrome等
你会知道它是否存在默认浏览器问题

我写了“使用Chrome时一切都很好,或者在我的电脑上试用时……”:D但我不知道我是否必须使用不同的方式发送文件,或者是一个bug:S谢谢你的回复^^^是的,在3种不同的设备上试用过:4.1.2和4.2.2版本的Android默认浏览器是的,Ajinkya:S如果可能的话,我会尝试其他Android版本。