Java 如何在使用struts2和Ajax下载文件时放置进度条
我不能把进度条,因为它是直接重定向页面和文件下载 一个问题中有这么多问题(大部分是隐含的) 如何在使用struts2和Ajax下载文件时放置进度条Java 如何在使用struts2和Ajax下载文件时放置进度条,java,jquery,ajax,struts2,progress-bar,Java,Jquery,Ajax,Struts2,Progress Bar,我不能把进度条,因为它是直接重定向页面和文件下载 一个问题中有这么多问题(大部分是隐含的) 如何在使用struts2和Ajax下载文件时放置进度条 如果不需要,请不要使用AJAX下载。在浏览器中打开文件时(contentDisposition:inline),只需使用新选项卡(/Window)。下载文件(contentDisposition:attachment)时,当前页面不会受到影响。您可以在中找到几种方法,例如: 价值1 下载 我们如何才能把浏览器的进度条 每个浏览器都有一个内置的进度
contentDisposition:inline
),只需使用新选项卡(/Window)。下载文件(contentDisposition:attachment
)时,当前页面不会受到影响。您可以在中找到几种方法,例如:
价值1
下载
我们如何才能把浏览器的进度条
contentLength
标题,该标题也可直接在结果中使用:
图像/jpeg
附件filename=“document.pdf”
${lengthOfMyFile}
private long lengthOfMyFile;//带吸气剂
公共字符串execute(){
/*文件加载和东西*/
lengthOfMyFile=myFile.length();
回归成功;
}
// The Action must implement the SessionAware interface
private Map<String,Object> session; // with Setter
private final static String BUSY = "I'm busy. Try again";
public String execute(){
if (session.get(BUSY)!=null){
LOG.debug("Another download is in progress. I stop here");
return NONE;
}
try {
session.put(BUSY,BUSY);
/* file loading and stuff ... */
} finally {
session.remove(BUSY);
return SUCCESS;
}
}
//该操作必须实现SessionAware接口
专用映射会话;//和二传手
private final static String BUSY=“我很忙,再试一次”;
公共字符串execute(){
if(session.get(BUSY)!=null){
debug(“另一个下载正在进行中,我在这里停止”);
不返回任何值;
}
试一试{
session.put(忙,忙);
/*文件加载和东西*/
}最后{
会话。删除(忙);
回归成功;
}
}
好的旧信号灯进度监视器放在哪里?为什么要通过AJAX下载?您确定浏览器进度条不够吗?如何放置浏览器进度条?我可以下载csv、txt、xml、html、pdf等不同格式的文件。假设文件太重。所以这需要时间,所以我想防止用户不点击其他按钮。另一方面,这需要第二次请求。请帮助我