【问题标题】:How to make a jsp page download 2 files如何让一个jsp页面下载2个文件
【发布时间】:2013-08-27 11:15:15
【问题描述】:

我有一个 download.jsp 页面,加载时会导致文件下载 使用以下代码:

String contentDisp = "attachment; filename=file_" + "."+DeptNumber+ ".txt";     
response.setContentType("text/plain");
response.setHeader("Content-Disposition", contentDisp);

在此之后,我做了一些 out.write(....) 语句,然后最后是 out.flush() 这是当用户收到来自浏览器的下载文件请求时。 之后我使用:

response.sendRedirect("landingpage.jsp");

将用户移至下一页。

现在,我想做同样的事情,但不是一个文件,我希望页面生成 2 个文件以供下载。我做了 2 处更改:

1)我把jsp的开头改成检查一个属性,根据发送的属性,生成正确的文件供下载。

String downloadDeptNumber = request.getAttribute("dept")==null ? "1" : request.getAttribute("dept").toString();

2) 在页面末尾而不是重定向到下一页,我检查属性是否为 1,我将其更改为 2 并重定向到同一页面。如果不是 1,我会重定向到我最初使用的结束页面(登陆页面),上面只有 1 次下载。

if (downloadDeptNumber.equals("1")) 
{
      redirectUrl="download.jsp" ;
      session.setAttribute("dept", "2");
}
else
{
      redirectUrl= "landingpage.jsp";
      session.removeAttribute("dept");
}
response.sendRedirect(redirectUrl);

但我似乎无法重定向到我当前所在的同一页面。

有没有人可以帮我解决?

谢谢。

【问题讨论】:

  • 最好将两个文件都放在一个 zip 中,然后让用户下载那个。
  • 另外,很抱歉在 jsp 中使用 scriptlet ,这是维护的旧代码,新代码是 JSTL。
  • zip 不是我的用户类型的解决方案
  • 也许只是给用户一个带有两个链接的页面?或者制作两个不同的页面,每个文件一个,然后在它们之间重定向? (实际上这会很奇怪)

标签: java jsp redirect download response.redirect


【解决方案1】:

选项 #1:单独的链接

给2个单独的链接来下载每个文件

选项 #2:压缩文件

使用 java API 在服务器上制作单个 zip 文件并下载

选项#3:使用java脚本

创建一个 java 脚本函数,该函数将打开新选项卡并同时下载每个文件

下面的代码应该运行来下载每个文件

window.open(
  'http://download_file_link',
  '_blank' // <- This is what makes it open in a new window.
);

【讨论】:

  • 找到单独的链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-08
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多