首页 > 代码库 > 多个文件上传

多个文件上传

//准备文件

1.上传多个文件页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%@taglib uri="/struts-tags" prefix="s" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="http://www.mamicode.com/">        <title>登录页面</title>  </head>    <body>   <s:form action="upload.action" enctype="multipart/form-data" method="post">        <s:file name="upload" label="选择文件" />		<br />		<s:file name="upload" label="选择文件" />		<br />		<s:file name="upload" label="选择文件" />		<br />		<s:submit name="submit" value="http://www.mamicode.com/上传文件"></s:submit>   </s:form>  </body></html>

  2.在struts.xml中配置相应的action

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC 	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"	"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>	<!-- 动态方法调用 -->     <constant name="struts.devMode" value="http://www.mamicode.com/false" />            <package name="default" namespace="/" extends="struts-default">    	        <action name="upload" class="cn.happy.action.UploadAction" method="execute">        	<param name="savePath">/image</param>           <result name="success">/upload/success.jsp</result>        </action>    </package></struts>

 3.在根据action节点找对应的类

package cn.happy.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport {	/***	 * 多文件上传	 * @return	 */	// 上传文件的属性		private File[] upload;		// 上传文件的类型		private String[] uploadContentType;		// 上传文件的名称		private String[] uploadFileName;		// 上传文件的地址		private String savePath;				@Override			public String execute() throws Exception{			byte[] buffer=new byte[1024];			for(int i=0;i<upload.length;i++){				//建立上传文件的出入流				FileInputStream fis=new FileInputStream(getUpload()[i]);				//建立上传文件的输出流, getImageFileName()[i]				FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+getUploadFileName()[i]);			    int length=fis.read(buffer);			    while(length>0){			    	fos.write(buffer,0,length);			    	length=fis.read(buffer);			    }			    fis.close();				fos.flush();				fos.close();			}						return SUCCESS;		}			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 getSavePath() {			return ServletActionContext.getServletContext().getRealPath(savePath);		}		public void setSavePath(String savePath) {			this.savePath = savePath;		}}

4.如果成功就去找成功页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%@taglib uri="/struts-tags" prefix="s" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="http://www.mamicode.com/">        <title>成功页面</title>  </head>    <body>       您所上传的文件是:<s:property value="http://www.mamicode.com/uploadFileName"/><br/>	文件类型:<s:property value="http://www.mamicode.com/uploadContentType"/>  </body></html>

  

 

 

 

 

 

多个文件上传