我的资源目录中有.apk文件,我想直接从移动设备下载。
使用Chrome时,或者在我的电脑上尝试时,一切都很好,但是当使用默认的Android浏览器时,我会得到一个.htm文件和一个:
ClientAbortException:java.io.IOException:写入失败
我不明白发生了什么或是否是浏览器的错误。
在以下几个循环之后抛出异常:
out.write(outputByte,0,4096);
有什么建议吗?谢谢!
这是我的代码:
@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;
}
答案 0 :(得分:0)
尝试使用其他浏览器,然后使用默认浏览器, 例如UC浏览器,Chrome等 如果它的默认浏览器问题是
,你就会知道