zoukankan      html  css  js  c++  java
  • struts文件上传

    一、编写上传界面

    <body>
      <form action="${pageContext.request.contextPath}/fileUploadAction" method="post" enctype="multipart/form-data">
          文件:<input type="file" name="file1"><br />
          <input type="submit" value="上传">
      </form>
    </body>

    二、编写后台Action

    public class FileUpload extends ActionSupport{
        //文件:<input type="file" name="file1"><br />
        private File file1;
        private String file1FileName;
        private    String file1ContentType;
        
        public void setFile1(File file1) {
            this.file1 = file1;
        }
        public void setFile1FileName(String file1FileName) {
            this.file1FileName = file1FileName;
        }
        public void setFile1ContentType(String file1ContentType) {
            this.file1ContentType = file1ContentType;
        }
        
        @Override
        public String execute() throws Exception {
            /*****处理业务******/
            //吧文件上传到upload目录
            //获取上传的路径
            String path = ServletActionContext.getServletContext().getRealPath("/upload");
            File destFile = new File(path,file1FileName);
            FileUtils.copyFile(file1, destFile);
            return SUCCESS;
        }
    }

    三、编写配置文件upload.xml(注意:class值用点分割)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
              "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
        <package name="upload" extends="struts-default">
        <!-- 注意class使用点 -->
            <action name="fileUploadAction" class="cn.itcast.e_fileupload.FileUpload">
                <result name="success">/e/success.jsp</result>
                <!-- 配置错误视图 -->
                <result name="input">/e/error.jsp</result>
            </action>
        </package>
    </struts>

    四、把upload.xml引入struts.xml文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
              "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
        <!-- 总的配置文件,引入其他文件 -->
        <include file="cn/itcast/e_fileupload/upload.xml"></include>
    </struts>

    五、配置(上传文件大小,以及类型)

    1、struts默认上传大小是2M;当文件大于2M就会报错,此时可以配置错误视图error.jsp(可以显示错误)。

     <body>
      error.jsp<br />
      <!-- 查看错误信息 -->
      <%@ taglib uri="/struts-tags" prefix="s" %>
      <s:fielderror></s:fielderror>
     </body>

    2、配置上传文件大小(struts-core-2.3.4.1.jar/org.apache.struts2/static/default.properties此文件包含常量设置)

        在src目录下,新建constant.xml

    <struts>
        <!-- 全局配置 -->
        
        <!-- 上传文件大小配置 :30M-->
        <constant name="struts.multipart.maxSize" value="31457280" />
    </struts>

    3、配置上传文件类型(配置拦截器)

    <struts>
        <package name="upload" extends="struts-default">
        <!-- 注意class使用点 -->
            <action name="fileUploadAction" class="cn.itcast.e_fileupload.FileUpload">
                <!-- 配置文件上传的类型 -->
                <interceptor-ref name="defaultStack">
                    <param name="fileUpload.allowedExtensions">txt,jpg</param>
                </interceptor-ref>
                <result name="success">/e/success.jsp</result>
                <!-- 配置错误视图 -->
                <result name="input">/e/error.jsp</result>
            </action>
        </package>
    </struts>
  • 相关阅读:
    冒泡排序
    MySql
    利用mybatis-generator自动生成代码
    SQL,HQL,CQL,JPQL了解
    mysql中的约束
    详解CRUD?
    什么是数据库ACID?
    建造者模式(Builder Pattern)
    Java中的设计模式
    java中的排序面试题
  • 原文地址:https://www.cnblogs.com/h-g-f-s123/p/6359163.html
Copyright © 2011-2022 走看看