How to put progress bar when downloading file using struts2 and Ajax(使用struts2和Ajax下载文件时如何放置进度条)
问题描述
我无法放置进度条,因为它直接重定向页面并下载文件.
这么多问题(大部分是隐含的)一个问题!
<块引用>使用struts2和Ajax下载文件时如何放置进度条
如果不需要,不要使用 AJAX 下载.当您在浏览器中打开文件 (
contentDisposition: inline
) 时,只需使用新的 Tab(/Window).当您下载文件(contentDisposition: attachment
)时,当前页面不会受到影响.您可以在 结果:<result name="success" type="stream"><param name="contentType">image/jpeg</param><param name="contentDisposition">附件;filename="document.pdf"</param><param name="contentLength">${lengthOfMyFile}</param></结果>
private long lengthOfMyFile;//使用 Getter公共字符串执行(){/* 文件加载和其他东西 ... */lengthOfMyFile = myFile.length();返回成功;}
<块引用>
假设文件太重.所以这需要时间,所以我想防止用户不点击其他按钮
如果您想节省带宽,那么您需要进行 Web 服务器 配置.这篇文章可能会有所帮助:
- 限制数量每个客户端的下载量
如果您不关心防止泛滥的请求,而只是防止客户端的多个并发下载,您可以使用会话变量,放在开头并在结尾删除方法,在下载操作开始时检查它是否存在.如果它存在,您将不会下载,否则,您将:
//Action 必须实现 SessionAware 接口私有地图<字符串,对象>会议;//使用 Setterprivate final static String BUSY = "我很忙.再试一次";公共字符串执行(){if (session.get(BUSY)!=null){LOG.debug("另一个下载正在进行中.我停在这里");返回无;}尝试 {session.put(忙,忙);/* 文件加载和其他东西 ... *
本文标题为:使用struts2和Ajax下载文件时如何放置进度条


基础教程推荐
- Java:带有char数组的println给出乱码 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 降序排序:Java Map 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01