gpt4 book ai didi

java - 表单提交后,下载文件

转载 作者:行者123 更新时间:2023-12-01 15:46:33 31 4
gpt4 key购买 nike

我正在使用 struts2 和 servlet。 (由于 servlet 附带了第 3 方 ajax 功能)。

我的一个表单正在发布到 servlet。 (名称“/exclude/new.srl”)我已将 struts2 设置为忽略对“排除” namespace 的所有请求。所以请求很好地到达了 servlet。

Servlet 完成其工作,然后在结束之前继续执行以下操作:

response.getOutputStream().print("'OK'");
response.getOutputStream().close();

现在我不详细了解第 3 方软件,所以我不太确定,但我认为 OK 语句告诉我的第 3 方 ajax 解决方案关闭表单并刷新页面的某些内容。

一切正常。

但是现在我正在尝试为此添加一些新内容。我想向用户发送一个文件。换句话说,当提交表单时,过去发生的所有事情仍然应该发生,而且还应该要求用户保存或打开文件。

所以我创建了一个 struts2 操作来返回文件,没问题。但是我如何对 servlet 进行编程以将此文件推送给用户并返回响应 OK?我不需要使用 struts2 操作来推送文件,如果可以在 servlet 内完成,这是完全可以接受的。

有人吗?

最佳答案

您可以发送文件

// Set the headers.
res.setContentType("application/x-download");
res.setHeader("Content-Disposition", "attachment; filename=" + filename);

// Send the file.
OutputStream out = res.getOutputStream();
File file = new File(yourPath);
response.setContentLength((int) file.length());

BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file));
int readBytes = 0;
while ((readBytes = buf.read()) != -1)
stream.write(readBytes);
buf.close();
stream.close();

但是我如何对 servlet 进行编程以将此文件推送给用户并返回响应 OK?

我认为这是不可能的。来自 servlet 的响应有一个类型,由内容类型表示。如果您将其设置为下载,则您无法发送正常响应,这意味着您无法发送“确定”。

关于java - 表单提交后,下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941529/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com