如何监视servlet 3.1中上传文件的进度

时间:2015-08-16 20:29:53

标签: java servlets file-upload

我想监控上传文件的进度 我正在使用servlet 3.1

我知道根据servlet 3.1的规范,我不需要apache common fileUpload 我只能通过Part class

来做到这一点

我做了这个

InputStream inputStream = null; 

       double s;
       String size=null;
       String contentType=null;
       String submittedName=null;
       String tim=null;
       String actualLocation=null;
       System.out.println("getting it also here");
       Part filePart = request.getPart("file");
       System.out.println("getting it here");
       if(description.equals(""))
       {
           System.out.println("please provide some description about file");
       }
       else{

            if (filePart != null )
              {
                    s=(double)filePart.getSize();

                    double MB=(s/1048576);
                   if(MB != 0)

                       {
                             size=String.valueOf((float)MB);

                             contentType=filePart.getContentType();

                             submittedName=getFormatted(filePart.getSubmittedFileName());

                             tim=String.valueOf(System.currentTimeMillis());

                             actualLocation=name+"-"+commun+"-"+tim+"-"+submittedName;
                              System.out.println("getting it there");
                             inputStream = filePart.getInputStream();
                              System.out.println("getting it here & there");

                                 try
                                 {
                                     File file=new File(x,actualLocation);
                                     Files.copy(inputStream, file.toPath());
                                  }

我知道我可以使用监听器来监控进度,但主要问题是我应该在哪里设置进度监听器 我认为它应该使用Part.artPat.before System.out.println进行设置("在此处获取")

this is a screenshot of my project

你可以看到chrome正在显示上传的进度(在底部)(但我想要一个更令人印象深刻的进度条)

当我运行我的项目时,我认为在控制台中我会看到"也可以在这里找到它"在上传时,我发现除非上传完成,否则控件不会进入该部分。

我有点混淆上传发生的细分以及我应该在哪里设置进度监听器

1 个答案:

答案 0 :(得分:0)

您不需要在服务器端执行上传进度条的任何操作。您只需使用javascripthtmlcss即可。

如果您使用jQuery,请查看此pugin http://malsup.com/jquery/form/。这是文件上传进度条演示链接http://malsup.com/jquery/form/progress.html。网站上还有两个演示和更多示例。

您可以使用html5javascript来查看本教程http://codular.com/javascript-ajax-file-upload-with-progress。只需忽略PHP部分即可。

您不必更改java代码中的任何内容,因为文件上传完成后会触发servlet方法。