【发布时间】:2017-03-13 05:17:31
【问题描述】:
我正在使用 JSP 和 Spring MVC 开发一个 Web 应用程序。
在我的控制器中,我有一个下载 APK 文件的操作:
@Controller("ApplicationController")
public class ApplicationController {
....
@RequestMapping(value = "/getApp", method = RequestMethod.GET)
public void getApp(HttpServletRequest request, HttpServletResponse response) {
FileInputStream fis = new FileInputStream("D:\\test.apk");
byte[] bytes = IOUtils.toByteArray(fis);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=test.apk");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
response.getOutputStream().write(bytes);
response.flushBuffer();
}
....
}
在一个页面中,我有一个链接可以调用此操作:
<a href="/getApp" target="_blank">Get App</a>
此链接在 PC 浏览器中有效,但在 Chrome 等 Android 浏览器中使用时,下载失败。
添加:
之前,我通过 SSL 连接使用该链接,但我已经通过简单的 http 连接对其进行了测试,并且它有效。我认为这是我的 SSL 连接和 Android 下载管理器的问题!!!!
提前感谢任何帮助。
【问题讨论】:
-
in Android browsers like Chrome, download fails的症状是什么?请复制并粘贴错误消息(如果有)。 -
@greybeard 没有调试错误,只是在Android Chrome浏览器中触摸下载链接时,浏览器要求下载文件,但确认下载后,Android显示一个包含“下载失败!”的toast通知留言
-
当您下载其他类型的文件而不是 apk 时,您的控制器是否正常工作?
-
@eltabo 我用文本文件试过了,同样的问题发生了。
-
@eltabo 我通过 SSL 连接连接到 Web 应用程序。浏览器会因为我的 SSL 证书而拒绝下载请求吗?
标签: java android spring jsp spring-mvc