簡體   English   中英

如何在Servlet 3.1中監視上傳文件的進度

[英]how to monitor progress of uploading file in servlet 3.1

我想監視使用Servlet 3.1上傳的文件的進度

我知道根據Servlet 3.1的規范,我不需要apache通用fileUpload我只能通過Part類來做到這一點

我做到了

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 filePart.before System.out.println(“在此處獲取”)進行設置。

這是我的項目的屏幕截圖

您可以看到chrome正在顯示上傳進度(在底部)(但我想要一個更令人印象深刻的進度欄)

當我運行我的項目時,我以為在上載時我會在控制台中看到“也在此處獲得它”,但我發現除非完成上載,否則控件不會進入該部分。

我對上傳發生在哪個段以及應該在哪里設置進度偵聽器感到困惑

您無需在服務器端執行任何操作即可上傳進度條。 您可以使用javascripthtmlcss來做到這一點。

如果您使用的是jQuery請查看此pugin http://malsup.com/jquery/form/ 這是文件上傳進度條演示鏈接http://malsup.com/jquery/form/progress.html 網站上還有另外兩個演示和更多示例。

您可以看一下本教程http://codular.com/javascript-ajax-file-upload-with-progress使用html5javascript進行此操作。 只需忽略PHP部分。

您不必更改java代碼中的任何內容,因為文件上傳完成后,將servlet方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM