- 论坛徽章:
- 0
|
使用的apache commons,但是上传后,前面一直阻塞,进度条不动,一直到最后上传完,进度条跳到100%。请各位大侠帮忙看看,谢谢
jsp部分:
<script>
var timeid;
function callback(){
//alert(123);
$.ajax({
type:"post",
url:"progress",//响应文件上传进度的servlet
success:function(msg){
//alert(msg);
value = msg;
if(value<100){
document.getElementById("xxx").innerHTML="已上传:"+msg;//显示读取百分比
}
else if(value==100){
window.clearInterval(timeid);
document.getElementById("xxx").innerHTML="已上传:"+msg;//显示读取百分比
}
}
});
}
function submitForm(){
timeid = window.setInterval("callback()", 10);
$('#ff').form('submit');
}
</script>
<form id="ff" method="post" action="UpFile" enctype="multipart/form-data">
<table>
<tr>
<td>导入路径:</td>
<td>
<select class="easyui-combobox" name="language" >
<option value="1">123</option>
<option value="2">456</option>
<option value="3">789</option>
</select>
</td>
</tr>
<tr>
<td>文件</td>
<td>
<input type=file name="file1" size="30"/>
</td>
</tr>
</table>
</form>
servlet部分:
UpFile
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
boolean isMultipartContent = ServletFileUpload.isMultipartContent(request);
if (!isMultipartContent) {
return;
}
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
UpFileProgressListener upFileProgressListener = new UpFileProgressListener(request);
upload.setProgressListener(upFileProgressListener);
// HttpSession session = request.getSession();
// session.setAttribute("UpFileProgressListener", upFileProgressListener);
try {
List<FileItem> fields = upload.parseRequest(request);
Iterator<FileItem> it = fields.iterator();
if (!it.hasNext()) {
return;
}
while (it.hasNext()) {
FileItem fileItem = it.next();
File f = new File("e:/abc");
try {
fileItem.write(f);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (FileUploadException e) {
out.println("Error: " + e.getMessage());
e.printStackTrace();
}
}
progress:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession(true);
if (session == null) {
out.println("Sorry, session is null"); // just to be safe
return;
}
String testProgressListener = (String) session.getAttribute("percentDone").toString();
if (testProgressListener == null) {
out.println("Progress listener is null");
return;
}
out.println(testProgressListener);
System.out.println(testProgressListener+"====<====<");
} |
|