struts2文件上传

来源:互联网 发布:石鑫网络信息有限公司 编辑:程序博客网 时间:2024/06/06 05:25

一、单文件上传:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>        <title>fileupload</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>     <s:debug></s:debug>      <h4>File Up Load</h4>            <s:form action="upload" enctype="multipart/form-data" theme="simple" method="post">             File: <s:file name="ppt"></s:file><br>       FileDesc<s:textfield name="pptDesc"></s:textfield><br>            <s:submit></s:submit>      </s:form>              </body></html>

struts.xml文件

  <action name="upload" class="com.upload.action.FileUpLoadAction" >           <result>/success.jsp</result>           <result name="input">/fileupload.jsp</result>         </action>

FileUpLoadAction.java文件:

package com.upload.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.List;import javax.servlet.ServletContext;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class FileUpLoadAction extends ActionSupport {/** *  */private static final long serialVersionUID = 1L;private File ppt;private String pptContentType;private String pptFileName;private String pptDesc;public File getPpt() {return ppt;}public void setPpt(File ppt) {this.ppt = ppt;}public String getPptContentType() {return pptContentType;}public void setPptContentType(String pptContentType) {this.pptContentType = pptContentType;}public String getPptFileName() {return pptFileName;}public void setPptFileName(String pptFileName) {this.pptFileName = pptFileName;}public String getPptDesc() {return pptDesc;}public void setPptDesc(String pptDesc) {this.pptDesc = pptDesc;}@Overridepublic String execute() throws Exception {System.out.println(ppt);System.out.println(pptContentType);System.out.println(pptFileName);System.out.println(pptDesc);ServletContext servletContext = ServletActionContext.getServletContext();String dir = servletContext.getRealPath("/files/" + pptFileName);System.out.println(dir);FileOutputStream out = new FileOutputStream(dir);FileInputStream in = new FileInputStream(ppt);byte [] buffer = new byte[1024];int len = 0;while((len = in.read(buffer)) != -1){out.write(buffer, 0, len);}out.close();in.close();return "success";}}


多文件上传:

只要将jsp页面修改,和Action

例如:

Action代码:

package cn.csdn.hr.up.action;import java.io.File;import java.io.IOException;import java.util.List;import org.apache.commons.io.FileUtils;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class TagUploadListAction extends ActionSupport {    private static final long serialVersionUID = 1L;    private String name;    // 上传多个文件的集合文本    private List<File> upload;    // /多个上传文件的类型集合    private List<String> uploadContentType;   // 多个上传文件的文件名集合    private List<String> uploadFileName;    public String getName() {            return name;     }    public void setName(String name) {       this.name = name;    }    public List<File> getUpload() {       return upload;    }    public void setUpload(List<File> upload) {       this.upload = upload;    }    public List<String> getUploadContentType() {       return uploadContentType;    }    public void setUploadContentType(List<String> uploadContentType) {       this.uploadContentType = uploadContentType;    }    public List<String> getUploadFileName() {       return uploadFileName;    }    public void setUploadFileName(List<String> uploadFileName) {       this.uploadFileName = uploadFileName;    }    public String execute() {       // 把上传的文件放到指定的路径下       String path = ServletActionContext.getServletContext().getRealPath(              "/WEB-INF/uploadList");       // 写到指定的路径中       File file = new File(path);       // 如果指定的路径没有就创建       if (!file.exists()) {           file.mkdirs();       }       // 把得到的文件的集合通过循环的方式读取并放在指定的路径下       for (int i = 0; i < upload.size(); i++) {           try {              //list集合通过get(i)的方式来获取索引              FileUtils.copyFile(upload.get(i), new File(file, uploadFileName.get(i)));           } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();           }       }       return SUCCESS;    }}



0 0
原创粉丝点击