免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2121 | 回复: 0
打印 上一主题 下一主题

[Ajax] 文件上传进度条问题,求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-05 09:58 |只看该作者 |倒序浏览
使用的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+"====<====<");
        }
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP