[英]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正在顯示上傳進度(在底部)(但我想要一個更令人印象深刻的進度欄)
當我運行我的項目時,我以為在上載時我會在控制台中看到“也在此處獲得它”,但我發現除非完成上載,否則控件不會進入該部分。
我對上傳發生在哪個段以及應該在哪里設置進度偵聽器感到困惑
您無需在服務器端執行任何操作即可上傳進度條。 您可以使用javascript
, html
和css
來做到這一點。
如果您使用的是jQuery
請查看此pugin http://malsup.com/jquery/form/ 。 這是文件上傳進度條演示鏈接http://malsup.com/jquery/form/progress.html 。 網站上還有另外兩個演示和更多示例。
您可以看一下本教程http://codular.com/javascript-ajax-file-upload-with-progress使用html5
和javascript
進行此操作。 只需忽略PHP
部分。
您不必更改java
代碼中的任何內容,因為文件上傳完成后,將servlet
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.