首页 > 代码库 > 文件上传--多文件上传
文件上传--多文件上传
首先先创建jsp页面(用于多文件上传)
<%@ 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>
success.jsp页面(用来显示上传成功后的文件和文件类型)
<%@ 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>
接下来创建UploadAction类
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.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport { // 上传文件的属性 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 String getSavePath() { return ServletActionContext.getServletContext().getRealPath(savePath); } public void setSavePath(String savePath) { this.savePath = savePath; } 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; } }
最后编写配置文件struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.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>
实现效果展示
选择文件后
文件上传--多文件上传
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。