DWR3 文件下传显示进度条
DWR3 文件上传显示进度条最近刚开始学dwr,发现使用起来确实方便多了。现在公司正好有需求要使用文件上传,所
DWR3 文件上传显示进度条
最近刚开始学dwr,发现使用起来确实方便多了。现在公司正好有需求要使用文件上传,所以就研究了一下dwr3的文件上传和下载。
上传很方便,但是要显示进度条,我没找到相关的接口,我觉得dwr3应该会提供一个方便的接口用来显示进度条,后来研究dwr3的源码,发现在上传文件时,发现有下面的一段代码
其中 upload.js 代码如下:
dwrHelper.js只是一个针对dwr3错误处理
zDrag.js 和 zDialog.js 是用的一个弹出框插件,附件中会列出的
2.然后是dwr3的配置文件(web.xml怎么配置的我就不写了)
3.java代码
供前台调用的类
这个是存储进度条信息的类
package com.method.dwr.util.fileUpload;import java.util.ArrayList;public class ProgressInfo{ private long totalSize = 0; private long bytesRead = 0; private int fileIndex = 0; private long startTime = System.currentTimeMillis(); private long deltaTime = 0; private String uploadedFiles = ""; private boolean isInProgress = true; private boolean isCompleted = false; private String curFileName = ""; private String errorMsg = ""; public String getErrorMsg() {return errorMsg;}public void setErrorMsg(String errorMsg) {this.errorMsg = errorMsg;}public String getCurFileName() {return curFileName;}public void setCurFileName(String curFileName) {this.curFileName = curFileName;}public String getUploadedFiles() {return uploadedFiles;}public void setUploadedFiles(String uploadedFiles) {this.uploadedFiles = uploadedFiles;}public long getStartTime() {return startTime;}public void setStartTime(long startTime) {this.startTime = startTime;}public void setDeltaTime(long deltaTime) {this.deltaTime = deltaTime;}public ProgressInfo() { } public long getTotalSize() { return totalSize; } public void setTotalSize(long totalSize) { this.totalSize = totalSize; } public long getBytesRead() { return bytesRead; } public void setBytesRead(long bytesRead) { this.bytesRead = bytesRead; } public long getDeltaTime() { return System.currentTimeMillis() - this.startTime; } public boolean isInProgress() { return isInProgress; } public int getFileIndex() { return fileIndex; } public void setFileIndex(int fileIndex) { this.fileIndex = fileIndex; }public boolean isCompleted() {return isCompleted;}public void setCompleted(boolean isCompleted) {this.isCompleted = isCompleted;this.isInProgress = false;}public void setInProgress(boolean isInProgress) {this.isInProgress = isInProgress;}}
上面的方法中,有dwr3的下载方法,我的理解是,这个下载方法,是先把文件一次读取到内存中,再在页面中提供下载,这样有个问题:无法下载大文件,不知道各位有没有更好的方法
如果大家有什么更好的建议,希望能提出来,大家一起分享
谢谢!