struts2 如何  上传文件

来源:互联网 发布:Js回车切换表单焦点 编辑:程序博客网 时间:2024/06/06 18:53

弄了半天 做个记录 方便以后查阅 O(∩_∩)O~

 

jsp页面:

 

 <s:form action="up" method="post" enctype="multipart/form-data" theme="simple" namespace="" name="form1">
     <s:file name="upload" label="行业标识1"></s:file>
     <s:submit value="确认添加"></s:submit>
  </s:form>

 

 

struts.xml配置

 

<!-- 上传的全部图片的最大限制-->
 <constant name="struts.multipart.maxSize" value="1024102400" />
 <constant name="struts.multipart.saveDir" value="d://test"></constant>

 <!-- 配置action-->
 <package name="upload" extends="struts-default" namespace="">
  <action name="up" class="actions.UploadImageAction">
   <interceptor-ref name="defaultStack"></interceptor-ref>
   <result name="success">/index.jsp</result>
  </action>
 </package>

 

后台action

 

package actions;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class UploadImageAction extends ActionSupport{
 private File upload;
 private String uploadContentType;
 private String uploadFileName;
 public File getUpload() {
  return upload;
 }
 public void setUpload(File upload) {
  this.upload = upload;
 }
 public String getUploadContentType() {
  return uploadContentType;
 }
 public void setUploadContentType(String uploadContentType) {
  this.uploadContentType = uploadContentType;
 }
 public String getUploadFileName() {
  return uploadFileName;
 }
 public void setUploadFileName(String uploadFileName) {
  this.uploadFileName = uploadFileName;
 }
 
 public String execute() throws Exception{//上传附件
  String fileName="";
  String fileAlias="";
  if (getUploadFileName()!=null) {
   fileName=getUploadFileName();
   fileAlias=getUploadFileName().substring(getUploadFileName().lastIndexOf('.'));
   FileInputStream fis=new FileInputStream(getUpload());
   byte[] b=new byte[1024];
   int len=0;
   String savepath=ServletActionContext.getServletContext().getRealPath("/upload");
   FileOutputStream fos=new FileOutputStream(savepath+"\\"+fileName);
   while ((len=fis.read(b))>0) {
    fos.write(b,0,len);
   }
  }
  return SUCCESS;
 }
}

 

 

很简单,此处就不加注释了O(∩_∩)O~ 需要的朋友 欢迎借用 呵呵