这可能是一个非常简单的问题,但我实际上并没有看到很多关于此的搜索结果。
我在一个表单中有一个非常基本的提交按钮,它接受一些用户输入,并在服务器的临时目录中生成一个可下载的文件,然后提示用户下载这个文件,然后在提交时被禁用:
<form action="Home" method="post" onsubmit="Submit.disabled = true; return true;">
...
<input type="submit" name="Submit" value="Submit" id="Submit" />
我们需要在页面创建文件时将其禁用几秒钟,然后提示用户下载它。创建文件后,它会在我们的 SelectionServlet.java 中返回以下响应,以便浏览器可以下载此生成的文件,例如:
if (Export.equals("PDF")){
response.setContentType(".pdf");
response.setHeader("Content-disposition", "attachment; filename="+Constants.FILE_NAME+".pdf");
File dlFile = new File(Constants.FILE_LOCATION+".pdf");
// This should send the file to browser
OutputStream outStream = response.getOutputStream();
FileInputStream in = new FileInputStream(dlFile);
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0){
outStream.write(buffer, 0, length);
}
in.close();
outStream.flush();
Export="HTML";
}
准备好下载文件后,我想重新启用该提交按钮,以便用户可以重新使用他们输入的表单数据(没有完成页面重定向,因为用户基本上只是选择进入的标准他们正在构建的文件,以及它是什么文件类型,提交按钮最终将我们带到一个 Java Web 连接,该连接连接到一个源并将各种文件类型构建到服务器的临时目录中以供用户下载) .
我在 Chrome 中玩过,实际上我可以删除提交按钮上的 disabled 属性,然后再次单击该按钮,但使用不同的标准并得到不同的结果。什么代码实际上可以做到这一点,我不确定。