목차
回复讨论(解决方案)
웹 프론트엔드 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으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

보호 관점에서 Struts2 기록 취약점을 보는 방법 보호 관점에서 Struts2 기록 취약점을 보는 방법 May 13, 2023 pm 05:49 PM

보호 관점에서 Struts2 기록 취약점을 보는 방법

FastAPI에서 파일 업로드 및 처리를 구현하는 방법 FastAPI에서 파일 업로드 및 처리를 구현하는 방법 Jul 28, 2023 pm 03:01 PM

FastAPI에서 파일 업로드 및 처리를 구현하는 방법

사진을 찍고 컴퓨터에 업로드하는 방법 사진을 찍고 컴퓨터에 업로드하는 방법 Jan 16, 2024 am 10:45 AM

사진을 찍고 컴퓨터에 업로드하는 방법

Kugou에 자신의 음악을 업로드하는 간단한 단계 Kugou에 자신의 음악을 업로드하는 간단한 단계 Mar 25, 2024 pm 10:56 PM

Kugou에 자신의 음악을 업로드하는 간단한 단계

QQ Music에 가사를 업로드하는 방법 QQ Music에 가사를 업로드하는 방법 Feb 23, 2024 pm 11:45 PM

QQ Music에 가사를 업로드하는 방법

Win10 컴퓨터에서 느린 업로드 속도 문제를 해결하는 방법 Win10 컴퓨터에서 느린 업로드 속도 문제를 해결하는 방법 Jul 01, 2023 am 11:25 AM

Win10 컴퓨터에서 느린 업로드 속도 문제를 해결하는 방법

JavaScript에서 페이지 로딩 진행률 표시줄 기능을 구현하는 방법은 무엇입니까? JavaScript에서 페이지 로딩 진행률 표시줄 기능을 구현하는 방법은 무엇입니까? Oct 27, 2023 am 08:57 AM

JavaScript에서 페이지 로딩 진행률 표시줄 기능을 구현하는 방법은 무엇입니까?

컴퓨터 업로드 속도를 향상시키는 방법 컴퓨터 업로드 속도를 향상시키는 방법 Jan 15, 2024 pm 06:51 PM

컴퓨터 업로드 속도를 향상시키는 방법

See all articles