struts2单文件上传和多文件上传的实现
一.单文件上传添加jar包
commons-fileupload-1.2.1.jar
commons-io-1.4.jar
在webroot创建一个文件如upload用于保存上传的文件
1.upload.jsp
<body> <s:form action="upload" enctype="multipart/form-data"> <s:file name="file" label="file"></s:file> <s:submit label="upload"></s:submit></s:form> </body>
2.UploadAction.java
package com.test.upload;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport { private File file; private String fileFileName; private String fileContentType; public File getFile() {return file; } public void setFile(File file) {this.file = file; } public String getFileContentType() {return fileContentType; } public void setFileContentType(String fileContentType) {this.fileContentType = fileContentType; } public String getFileFileName() {return fileFileName; } public void setFileFileName(String fileFileName) {this.fileFileName = fileFileName; } @Override public String execute() throws Exception {//1.构建一个输入流InputStream is=new FileInputStream(file);//2.构建一个上传文件路径String root=ServletActionContext.getRequest().getRealPath("/upload");//3.获得一个本地文件File diskFile=new File(root,this.getFileFileName());//4.构建输出流OutputStream os=new FileOutputStream(diskFile);//5.能过字节写入输出流byte[] buffer=new byte;int length=0;while((length=is.read(buffer))>0){ os.write(buffer,0,length);}is.close();os.close();return SUCCESS; }}
3.配置struts.xml
<constant name="struts.multipart.saveDir" value="c:\"></constant> <package name="FileuploadTest" extends="struts-default"><action name="upload" class="com.test.upload.UploadAction"> <result name="success">/uploadSuccess.jsp</result></action> </package>
二.多文件上传
1.upload.jsp页面
<body><s:form action="upload" enctype="multipart/form-data"> <s:file name="file" label="file"></s:file> <s:file name="file" label="file1"></s:file> <s:file name="file" label="file2"></s:file> <s:submit label="submit"></s:submit></s:form></body>
2.UploadAction.java
package com.test.upload;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.List;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport { private List<File> file; private List<String> fileFileName; private List<String> fileContentType; public List<File> getFile() {return file; } public void setFile(List<File> file) {this.file = file; } public List<String> getFileContentType() {return fileContentType; } public void setFileContentType(List<String> fileContentType) {this.fileContentType = fileContentType; } public List<String> getFileFileName() {return fileFileName; } public void setFileFileName(List<String> fileFileName) {this.fileFileName = fileFileName; } @Override public String execute() throws Exception {for (int i = 0; i < file.size(); i++) { // 1.构建一个输入流 InputStream is = new FileInputStream(file.get(i)); // 2.构建一个上传文件路径 String root = ServletActionContext.getRequest().getRealPath( "/upload"); // 3.获得一个本地文件 File diskFile = new File(root, this.getFileFileName().get(i)); // 4.构建输出流 OutputStream os = new FileOutputStream(diskFile); // 5.能过字节写入输出流 byte[] buffer = new byte; int length = 0; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } is.close(); os.close();}return SUCCESS; }}
页:
[1]