【发布时间】:2017-09-09 09:27:47
【问题描述】:
我正在尝试使用 ajax 和 servlet 下载文件,但我得到的最大结果是成功获得文件 parseado
我有这部分 servlet:
else if(type.equals("downloadDocument")){
String file = request.getParameter("filePath");
File f = new File(file);
if (f.exists() && f.isFile()){
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(f);
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > -1){
out.write(buffer, 0, length);
}
in.close();
out.flush();
}
还有那个电话:
$.ajax({
type : "POST",
url : "./ServletDocuWindow?downloadDocument",
data : datos,
success : function(r) {
}
});
【问题讨论】:
-
不可能通过 AJAX。 This 可能会回答你的问题!
-
@ShahzadIftikhar 是的。这并不容易,也不是所有浏览器都支持的,但是使用文件系统 API 和其他类似的 API,您可以做到。例如,mega.co.nz does it
-
不使用ajax?最后我需要的是下载我从服务器获取的文件
-
所以如果我理解正确的话,有一些链接并且在用户点击时,您不想刷新页面而是立即开始下载。您希望这样做吗?
-
下载文件的最简单方法是提供对文件 URL 的直接链接。您可能必须在 web.xml 中添加文件扩展名,以便 servlet 不会调用您的 doPost 方法,而是立即继续下载。
标签: javascript java servlets jakarta-ee