【发布时间】:2017-04-22 22:46:50
【问题描述】:
我有一个名为 DownloadFile 的 java servlet,在 Get 方法中我有一些代码可以从数据库中获取文件并在我导航到 url 时下载它
localhost:9080/myapp/DownloadFile
但我不想让我的用户到这个页面去下载文件,所以在我的 javascript 中点击一个按钮我有这个
$scope.downloadTemplate = function(){
console.log("download template called");
$.get("DownloadTemplate", function(responseText) {
console.log(responseText)
});
}
函数被调用,servlet 被调用但文件没有下载。为什么?这是相关的servlet代码
bytes = templateSet.getBytes("FILE");
fileName = templateSet.getString("TEMPLATE_FILE_NAME");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition",
"attachment;filename=" + fileName);
ServletOutputStream out = response.getOutputStream();
out.write(bytes);
out.flush();
out.close();
如何下载文件并让用户停留在下载按钮所在的页面上?
谢谢
【问题讨论】:
-
“不下载”是指
console.log(responseText)命令没有在控制台打印其内容?请记住,您不能使用 AJAX 下载文件,您需要定期请求/页面重定向。 -
@JiriTousek 我确实看到它打印在控制台中,但文件没有下载到我的文件系统。那么我需要什么类型的请求呢?为什么不能用ajax做呢
标签: javascript java servlets