struts文件上传demo

来源:互联网 发布:网络直播吃饭 编辑:程序博客网 时间:2024/06/05 11:19
//前端代码
<%@ page language="java" contentType="text/html; charset=gb2312"pageEncoding="gb2312"%><%@taglib prefix="s" uri="/struts-tags"%>    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>上传文件</title></head><body><!-- 上传文件表单定义 --><s:form action="upload" method="post" enctype="multipart/form-data"><tr><!-- 上传文件标签定义 --><td>上传文件:<s:file name="file"></s:file></td></tr><tr><td>再次上传文件:<s:file name="file"></s:file></td></tr><tr><td align="left"><s:submit name="submit" value="提交"></s:submit></td></tr></s:form></body></html>

后台代码

package action;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.List;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;//文件上传Actionpublic class UploadAction extends ActionSupport {//上传文件存放路径private final static String UPLOADDIR = "/upload";//上传文件集合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> getFileFileName() {return fileFileName;}public void setFileFileName(List<String> fileFileName) {this.fileFileName = fileFileName;}public List<String> getFileContentType() {return fileContentType;}public void setFileContentType(List<String> fileContentType) {this.fileContentType = fileContentType;}public String execute() throws Exception {for (int i = 0; i < file.size(); i++) {//循环上传每个文件uploadFile(i);}return "success";}//执行上传功能private void uploadFile(int i) throws FileNotFoundException, IOException {try {InputStream in = new FileInputStream(file.get(i));String dir = ServletActionContext.getRequest().getRealPath(UPLOADDIR);File uploadFile = new File(dir, this.getFileFileName().get(i));OutputStream out = new FileOutputStream(uploadFile);byte[] buffer = new byte[1024 * 1024];int length;while ((length = in.read(buffer)) > 0) {out.write(buffer, 0, length);}in.close();out.close();} catch (FileNotFoundException ex) {ex.printStackTrace();} catch (IOException ex) {ex.printStackTrace();}}}


0 0