Struts1 + dwz 多文件上传

1.JSP页面

<form id="myForm" method="post" action="/archive/testUploadAction.do?method=upload" class="pageForm required-validate"
    enctype="multipart/form-data" οnsubmit="return iframeCallback(this,dialogAjaxDone);">
        <input type="text" name="headerIdentifier" />
        <input type="text" name="headerType" />  
        
        <table id="tb">
        </table>
        <input type="button" name="btnAddFile" value="添加文件" οnclick="additem('tb')" />
        <input type="submit" name="btnSubmit" value="提交"  />

</form>

2.FormBean类

package com.gxzx.form;


import java.util.ArrayList;
import java.util.List;

import org.apache.struts.upload.FormFile;
import org.apache.struts.validator.ValidatorForm;

public class ElectronictDocumentForm extends ValidatorForm {

	private static final long serialVersionUID = 1090512723368950814L;


	//=============封首begin=================
	private String id;
	
	//信件标识符
	private String headerIdentifier;
	
	//信封类型
	private String headerType;
	
	...
	
	private List<UploadFile> uploadFiles;
	
	
	public ElectronictDocumentForm() {
		uploadFiles = new ArrayList<UploadFile>();
		uploadFiles.add(new UploadFile());
	}

	public UploadFile getUploadFile(int index) {
		int size = uploadFiles.size();
		 //注意这个方法的定义  不加中间的循环是会出错的
		if (index > size - 1) {
			for (int i = 0; i < index - size + 1; i++) {
				uploadFiles.add(new UploadFile());
			}
		}
		return (UploadFile) uploadFiles.get(index);
	}
	
	
	...

	public List<UploadFile> getUploadFiles() {
		return uploadFiles;
	}

	public void setUploadFiles(List<UploadFile> uploadFiles) {
		this.uploadFiles = uploadFiles;
	}
	
}

package com.gxzx.form;

import java.io.Serializable;

import org.apache.struts.upload.FormFile;

public class UploadFile implements Serializable{
	
	private static final long serialVersionUID = -690837677554339383L;
	private FormFile file;

	public FormFile getFile() {
		return file;
	}

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

3.Action类

package com.gxzx.action;

import java.io.FileOutputStream;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.gxzx.form.ElectronictDocumentForm;
import com.gxzx.form.UploadFile;
import com.sinosoft.workbench.dwz.constant.DwzContants;
import com.sinosoft.workbench.dwz.rp.DwzBaseAction;

public class TestUploadAction extends DwzBaseAction{

	public void upload(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		
		ElectronictDocumentForm eform = (ElectronictDocumentForm)form;
		
		
		System.out.println(eform.getHeaderIdentifier());
		System.out.println(eform.getHeaderType());
		
		List<UploadFile> files = eform.getUploadFiles();
		
		try {
			for(int i=0;i<files.size();i++){
				UploadFile uploadFile = (UploadFile) files.get(i);
				FormFile file = uploadFile.getFile();
				FileOutputStream outer = new FileOutputStream("d:\\"+file.getFileName());  
		        byte[] buffer = file.getFileData();  
		        outer.write(buffer);  
		        outer.close();  
		        file.destroy();
			}
	          
	    } catch (Exception e) {  
	        e.printStackTrace();  
	    }  
		
		dwzAjaxDoneCloseCurrent(response,"发文成功","");
	}
	
	
}

4.配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
    <!-- FormBeans -->
    <form-beans>
            <form-bean name="ArchiveInVOE" type="com.sinosoft.oa.archive.in.form.ArchiveInVOE" />
            <form-bean name="ArchiveOutVOE" type="com.sinosoft.oa.archive.out.form.ArchiveOutVOE" />
            <form-bean name="ArchiveSignVOE" type="com.sinosoft.oa.archive.sign.form.ArchiveSignVOE" />
            <form-bean name="ArchiveCodeVOE" type="com.sinosoft.oa.archive.code.form.ArchiveCodeVOE" />
            <form-bean name="ElectronictVOE" type="com.gxzx.entity.ElectronicOfficialDocument" />
            <form-bean name="TestUploadVOE"  type="com.gxzx.form.ElectronictDocumentForm"/>
    </form-beans>

    <!-- GlobalExceptions -->
    <global-exceptions />
    <!-- GlobalForwards -->
    <global-forwards>
        <forward name="workflow"    path="/../jsp/workflow/engine/workflow.jsp"/>
        <forward name="disKillFlow"    path="/../jsp/workflow/engine/disKillFlow.jsp"/>
        <forward name="manualDossier"    path="/../jsp/oa/archive/common/manualDossier.jsp"/>
    </global-forwards>

    <!-- ActionMappings -->
    <action-mappings>
        <!-- 自治区收发文 Start -->
        <action name="ElectronictVOE" scope="request" path="/ElectronictAction"  type="com.gxzx.action.ElectronictDocumentAction" parameter="method">
              <forward name="success"    path="/../jsp/zzqoa/archive/out/create_out.jsp"/>
        </action>

        <action scope="request" path="/ElectronictFileAction"  type="com.gxzx.action.ElectronicFileAction" parameter="method">
              <forward name="success"    path="/../jsp/zzqoa/archive/out/create_out.jsp"/>
        </action>
        <action name="TestUploadVOE"   scope="request" path="/testUploadAction"  type="com.gxzx.action.TestUploadAction" parameter="method">
              <forward name="success"    path="/../testUpload.jsp"/>
              <forward name="init"    path="/../uploadtest.jsp"/>
        </action>
        <!-- 自治区收发文 End -->
        
        <!-- 收文 Start -->
        <action name="ArchiveInVOE" scope="request" path="/ArchiveInAction"  type="com.sinosoft.oa.archive.in.rp.ArchiveInAction" parameter="method">
              <forward name="archive"       path="/../jsp/oa/archive/in/archive.jsp"/>
              <forward name="archive_read"       path="/../jsp/oa/archive/in/archive_read.jsp"/>
            <forward name="list"    path="/../jsp/oa/archive/in/list.jsp"/>
              <forward name="manual_archive"       path="/../jsp/oa/archive/in/manual_archive.jsp"/>
        </action>
        <!-- 收文 End -->
        
        <!-- 发文 Start -->
        <action name="ArchiveOutVOE" scope="request" path="/ArchiveOutZXAction"  type="com.sinosoft.oa.archive.out.rp.ArchiveOutZXAction" parameter="method">
              <forward name="archive"       path="/../jsp/oa/archive/out/zx/archive.jsp"/>
              <forward name="archive_read"       path="/../jsp/oa/archive/out/zx/archive_read.jsp"/>
            <forward name="list"    path="/../jsp/oa/archive/out/zx/list.jsp"/>
            <forward name="manual_archive"       path="/../jsp/oa/archive/out/zx/manual_archive.jsp"/>
        </action>
        <!-- 发文 End -->
        
        <!-- 文号管理 Start -->
        <action name="ArchiveCodeVOE" scope="request" path="/ArchiveCodeAction"  type="com.sinosoft.oa.archive.code.rp.ArchiveCodeAction" parameter="method">
              <forward name="list"       path="/../jsp/oa/archive/code/code.jsp"/>
        </action>
        <!-- 文号管理 End -->
        
        <!-- 签报 Start -->
        <action name="ArchiveSignVOE" scope="request" path="/ArchiveSignZXAction"  type="com.sinosoft.oa.archive.sign.rp.ArchiveSignZXAction" parameter="method">
              <forward name="archive"       path="/../jsp/oa/archive/sign/zx/archive.jsp"/>
              <forward name="archive_read"       path="/../jsp/oa/archive/sign/zx/archive_read.jsp"/>
            <forward name="list"    path="/../jsp/oa/archive/sign/zx/list.jsp"/>
            <forward name="manual_archive"       path="/../jsp/oa/archive/sign/zx/manual_archive.jsp"/>
        </action>
        <!-- 签报 End -->
        
    </action-mappings>

    <!-- ApplicationResources -->
    <message-resources null="true"
        parameter="com.sinosoft.module.system.common.ApplicationResources" />

    <!-- ValidatorPlugIn -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames"
            value="/WEB-INF/validator-rules.xml" />
    </plug-in>
</struts-config>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值