Home  >  Article  >  Web Front-end  >  I have implemented the function of uploading Struts2 files and adding a progress bar, but why can't I get the return value of Struts2? Guys, please help me check_html/css_WEB-ITnose

I have implemented the function of uploading Struts2 files and adding a progress bar, but why can't I get the return value of Struts2? Guys, please help me check_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:58:271194browse

This is the interface before uploading:

This is the interface when the upload is completed:

I just don’t know why I can’t get the interface

This is jsp Code
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/ struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() "://" request.getServerName() ":" request .getServerPort() path "/";
%>




<script> <br> var id=0; <br> var i = 0; var i = 0; function addressAction(){ <br> $.post( <br> './upload/pro gress.action', <br> function(data ; { <br>            SetProgress(data.state.rate);                                                                                                      In("slow");// Loading completion prompt <br> window.clearInterval(id); <br> var num=data.state.rate/10; <br>                                                                                                                                                                                                                                                                                   through "); <br>                                                                            /gray.gif' />"); <br>                                                                               <br> var progress_id = "loading"; <br> function SetProgress (progress) { <br> if (progress) { <br> $("#" progress_id " > div").css("width", String(progress) "%"); //Control #loading div width <br> $("#" progress_id " > div").html(String(progress) "%"); //Display percentage <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<0)
      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;
   }
}



The post is quite long. I hope some kindhearted people can help me take a look. I’ve been thinking for a long time and haven’t found the reason.


Reply to the discussion (solution)

This is the struts.xml configuration file













/error.jsp


< ;!-- Respecify the request encapsulation class -->
name="requestParser" class="com.zjg.listtener .MyMultiPartRequest"
scope="default" optional="true" />

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn