strut2 单个文件上传

  1. 第一步:在WEB-INF/lib下加载commons-fileupload-1.2.1.jar、commons-1.3.2.jar.这两个文件可从http://commons.apache.org/下载。
  2. 第二步:把from 表的enctype设置为:"multipart/form-data",如下:
    <from enctype="multipart/form-data" action="${pageContext.request.contextPath}/list.action" method="post"
          <input type="file" name="uploadImage">
    </form>
  3. 第三步:在action类中添加以下代码:
    package cn.itcast.action;
    
    import java.io.File;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.struts2.ServletActionContext;
    
    import com.opensymphony.xwork2.ActionContext;
    
    
    public class HelloWorldAction {
        private File image;
        private String imageFileName;
        public String getImageFileName() {
            return imageFileName;
        }
        public void setImageFileName(String imageFileName) {
            this.imageFileName = imageFileName;
        }
        public File getImage() {
            return image;
        }
        public void setImage(File image) {
            this.image = image;
        }
        public String addUI(){
            return "success";
        }
    
        public String execute() throws Exception{
            
            String realpath = ServletActionContext.getServletContext().getRealPath("/images");//得到文件保存的目录(文件的绝对路径)
            System.out.println(realpath);
            if(image!=null){
                File savefile = new File(new File(realpath), imageFileName);//savefile是一个完整的文件路径
                if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();//如果保存文件的目录不存在则创建目录
                FileUtils.copyFile(image, savefile);//调用系统函数拷贝文件image到savefile中
                ActionContext.getContext().put("message", "上传成功");
            }
            return "success";
        }
    }

    4.struts.xml文件配置如下所示:

    <struts>
        <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
        <!--控制文件上传的大小-->
        <constant name="struts.multipart.maxSize" value="10701096"/>
        
        <package name="employee" extends="struts-default">
            <action name="list_*" class="cn.itcast.action.HelloWorldAction" method="{1}">
                <result name="success">/WEB-INF/page/message.jsp</result>
            </action>
        </package>
    </struts>

     

posted on 2015-01-01 02:17  缘非缘  阅读(201)  评论(0编辑  收藏  举报