目錄
回复讨论(解决方案)
首頁 web前端 html教學 Struts2文件上传,加进度条这个功能我是实现了,但是为何我取不到Struts2的返回值,兄弟们帮我看下_html/css_WEB-ITnose

Struts2文件上传,加进度条这个功能我是实现了,但是为何我取不到Struts2的返回值,兄弟们帮我看下_html/css_WEB-ITnose

Jun 24, 2016 am 11:58 AM
struts2 上傳 進度條

这个是还未上传时的界面:

这个是上传完成时的界面:

就是不知道为什么取不到界面

这个是jsp的代码


String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

nbsp;HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<script></script>
<script> <br /> var id=0; <br /> var i = 0; <br /> function addressAction(){ <br /> $.post( <br /> './upload/progress.action', <br /> function(data){ <br /> if(data.currentItem==0){ <br /> $("#message").text('0%'); <br /> }else if(data.state.rate<=100){ <br /> SetProgress(data.state.rate); <br /> }else{ <br /> $("#message").html("100% 上传完成!").fadeIn("slow");//加载完毕提示 <br /> window.clearInterval(id); <br /> } <br /> $("#img").html(""); <br /> var num=data.state.rate/10; <br /> <br /> for(var i=1;i<=num;i++){ <br /> $("#img").append("<img src='./images/grid.gif' / alt="Struts2文件上传,加进度条这个功能我是实现了,但是为何我取不到Struts2的返回值,兄弟们帮我看下_html/css_WEB-ITnose" >"); <br /> } <br /> for(var j=1;j<=10-num;j++){ <br /> $("#img").append("<img src='./images/gray.gif' / alt="Struts2文件上传,加进度条这个功能我是实现了,但是为何我取不到Struts2的返回值,兄弟们帮我看下_html/css_WEB-ITnose" >"); <br /> } <br /> }, <br /> 'json' <br /> ); <br /> } <br /> var progress_id = "loading"; <br /> function SetProgress(progress) { <br /> if (progress) { <br /> $("#" + progress_id + " > div").css("width", String(progress) + "%"); //控制#loading div宽度 <br /> $("#" + progress_id + " > div").html(String(progress) + "%"); //显示百分比 <br /> } <br /> } <br /> <br /> function submitForm(){ <br /> if($("#f1").val()==""){ <br /> alert('上传文件为空!!!'); <br /> return ; <br /> } <br /> id=window.setInterval(addressAction,10); <br /> $("form:first").submit();/*提交第一个表单*/ <br /> } <br /> </script>





enctype="multipart/form-data" target="hidden_frame">
  File:


 













上传进度条的action
public class FileProgressAction extends ActionSupport {
private State state;

public State getState() {
return state;
}

public void setState(State state) {
this.state = state;
}
@Override
public String execute() throws Exception {
 HttpSession session = ServletActionContext.getRequest().getSession();
 this.state = (State) session.getAttribute("state");
 if(state==null){
 System.out.println("action is null");
 state = new State();
 state.setCurrentItem(0);
 }else{
  Double a=Double.parseDouble(state.getReadedBytes()+"");
Double b=Double.parseDouble(state.getTotalBytes()+"");
double result=a/b*100;
state.setRate((int)result);
 }
return SUCCESS;
}
}
上传完成的action  返回值就在这里
public class FileProgressUploadAction extends ActionSupport{
    private File file;
    private String fileFileName;
    private String fileContentType;
    private String flag="===============";
    
public String getFlag() {
return flag;
}

public void setFlag(String flag) {
this.flag = flag;
}

public File getFile() {
return file;
}

public void setFile(File file) {
this.file = file;
}
    

public String getFileFileName() {
return fileFileName;
}

public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}

public String getFileContentType() {
return fileContentType;
}

public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
    
@Override
public String execute(){
   
   try {
   System.out.println("file:"+file);
   InputStream is=new FileInputStream(file);
   String root=ServletActionContext.getRequest().getRealPath("/upload");
   System.out.println("root:"+root);
   
   System.out.println("name:"+this.fileFileName);
   System.out.println("type:"+this.fileContentType);
   File destFile=new File(root,this.fileFileName);
   
   OutputStream os=new FileOutputStream(destFile);
   
   byte [] b=new byte[1024*1024*10];
   int length=0;       
   while(true){
     length=is.read(b);
     if(length       break;
      os.write(b,0,length);       
   }     
   setFlag("SUCCESS");
   is.close();
   os.close();
   }catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
   }
   System.out.println("=====================");
  return SUCCESS;
   }
}



帖子比较长希望好心人帮我看看吧,想了好久没找出什么原因


回复讨论(解决方案)

这个是struts.xml 配置文件












/index.jsp
/error.jsp



name="requestParser" class="com.zjg.listtener.MyMultiPartRequest"
scope="default" optional="true" />

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
如何從防護角度看Struts2歷史漏洞 如何從防護角度看Struts2歷史漏洞 May 13, 2023 pm 05:49 PM

一、前言Struts2漏洞是一個經典的漏洞系列,根源在於Struts2引入了OGNL表達式使得框架具有靈活的動態性。隨著整體框架的修補程式完善,現在想挖掘新的Struts2漏洞會比以前困難很多,從實際了解的情況來看,大部分用戶早就修復了歷史的高風險漏洞。目前在做滲透測試時,Struts2漏洞主要也是碰運氣,或是打到內網之後用來攻擊沒修補的系統會比較有效。網路上的分析文章主要從攻擊利用的角度來分析這些Struts2漏洞。作為新華三攻防團隊,我們的部分工作是維護ips產品的規則庫,今天回顧這個系

如何在FastAPI中實現檔案上傳和處理 如何在FastAPI中實現檔案上傳和處理 Jul 28, 2023 pm 03:01 PM

如何在FastAPI中實現檔案上傳和處理FastAPI是一個現代化的高效能Web框架,簡單易用且功能強大,它提供了原生支援檔案上傳和處理的功能。在本文中,我們將學習如何在FastAPI框架中實作檔案上傳和處理的功能,並提供程式碼範例來說明具體的實作步驟。首先,我們需要導入需要的函式庫和模組:fromfastapiimportFastAPI,UploadF

Win10電腦上傳速度慢怎麼解決 Win10電腦上傳速度慢怎麼解決 Jul 01, 2023 am 11:25 AM

  Win10電腦上傳速度慢怎麼解決?我們在使用電腦的時候可能會覺得自己電腦上傳檔案的速度非常的慢,那麼這是什麼情況呢?其實這是因為電腦預設的上傳速度為20%,所以才導致上傳速度非常慢,很多小夥伴不知道怎麼詳細操作,小編下面整理了win11格式化c碟操作步驟,如果你有興趣的話,跟著小編一起往下看看吧!  Win10上傳速度慢的解決方法  1、按下win+R調出運行,輸入gpedit.msc,回車。  2、選擇管理模板,點選網路--Qos封包計畫程序,雙擊限制可保留頻寬。  3、選擇已啟用,將帶

如何在QQ音樂上傳歌詞 如何在QQ音樂上傳歌詞 Feb 23, 2024 pm 11:45 PM

隨著數位時代的到來,音樂平台成為人們獲取音樂的主要途徑之一。然而,有時候我們在聽歌的時候,發現沒有歌詞是一件十分困擾的事。許多人都希望在聽歌的時候能夠展現歌詞,以便更好地理解歌曲的內容和情感。而QQ音樂作為國內最大的音樂平台之一,也為用戶提供了上傳歌詞的功能,使得用戶可以更好地享受音樂的同時,感受到歌曲的內涵。以下將介紹一下在QQ音樂上如何上傳歌詞。首先

如何使用HTML和CSS設定進度條的顏色? 如何使用HTML和CSS設定進度條的顏色? Sep 19, 2023 pm 08:25 PM

在網站開發中,進度條是網站的重要組成部分。進度條顯示了進程的進度。借助它,用戶可以看到網站上正在進行的工作的狀態,包括載入時間、文件上傳、文件下載和其他類似任務。預設情況下,它呈灰色。然而,為了使進度條突出並具有視覺吸引力,可以使用HTML和CSS來改變它們的顏色。什麼是進度條?進度條用於顯示任務的進度。它是一個圖形使用者介面元素。它基本上由一個水平條組成,隨著任務的進行逐漸填充,同時伴隨著百分比值或其他完成指示器。進度條在網路應用程式中用於向使用者提供關於完成諸如文件上傳、文件下載或軟體安裝等過

酷狗上傳自己的音樂的簡單步驟 酷狗上傳自己的音樂的簡單步驟 Mar 25, 2024 pm 10:56 PM

1.打開酷狗音樂,點選個人頭像。 2、點選右上角設定的圖示。 3.點選【上傳音樂作品】。 4.點選【上傳作品】。 5.選擇歌曲,然後點選【下一步】。 6.最後點選【上傳】即可。

Struts2框架的原理是什麼 Struts2框架的原理是什麼 Jan 04, 2024 pm 01:55 PM

Struts2框架的原理:1、攔截器解析請求路徑;2、找出Action的完整類別名稱;3、建立Action物件;4、執行Action方法;5、返回結果;6、視圖解析。它原理基於攔截器的機制,使得業務邏輯控制器與Servlet API完全脫離開,提高了程式碼的可重複使用性和可維護性。透過使用反射機制,Struts2框架可以靈活地建立和管理Action對象,實現請求與回應的處理。

JavaScript 如何實作頁面載入進度條功能? JavaScript 如何實作頁面載入進度條功能? Oct 27, 2023 am 08:57 AM

JavaScript如何實作頁面載入進度條功能?在現代網路應用中,頁面載入速度是使用者體驗的關鍵因素之一。為了向使用者展示載入過程,許多網站和應用程式會使用載入進度條。 JavaScript提供了一種簡單而有效的方法來實作頁面載入進度條功能。具體實現過程如下:建立HTML結構首先,在頁面的適當位置建立進度條的HTML結構,常見的是將進度條放置在

See all articles