• Struts2上传文件(1)


       使用Struts框架后, Struts2框架不会处理multipart/form-data的请求,它需要调用其他的上传文件框架来解析二进制数据。但是Struts在原有的上传解析器基础上做了很多的封装,简化了文件上传。主要是在Struts核心包中的default.properties文件中的文件解析器,配置如下所示。

    # struts.multipart.parser=cos
    # struts.multipart.parser=pell
    struts.multipart.parser=jakart

    根据Struts框架的配置可知,在Struts中默认是使用jakart的Common-FileUpload的文件上传框架,因此要使用文件上传功能,还需要加入commons-io-*.jar 和commons-fileupload-*.jar文件到WEB-INF下的lib包中,然后Build path一下,就可以使用了。

    上传文件只需要下列几部就可以成功上传文件。

    1.jsp页面加入如下代码:

     <body> <s:form action="test!file.action" method="POST"
            enctype
    ="multipart/form-data">
            <s:file name="file" label="file"></s:file>
            <s:submit value="submit" />
        </s:form>
    </body>

     2、编写文件上传action,在action中加入如下代码判断,并生成get和set方法

      private File file;//上传文件信息
        private String fileContentType;//上传文件类别
        private String fileFileName;//上传文件文件名

    3、重命名文件名

       在此处主要是使用了java中的UUID类生成字符串作为文件名,代码如下所示

      String fileName = UUID.randomUUID().toString()+ fileFileName.substring(fileFileName.lastIndexOf("."),fileFileName.length());

    4、获取文件上传路径

    主要是使用了ServletActionContext中的方法,代码如下所示

    String path = ServletActionContext.getServletContext().getRealPath("/upload/"+fileName);

    5、最后一步使用java文件流将文件上传到指定的路径中,代码如下所示

       FileInputStream fis;
        try {
         fis = new FileInputStream(file);
         FileOutputStream fos = new FileOutputStream(path);
         byte[] buffer = new byte[1024];
         int len = 0;
         while ((len = fis.read(buffer)) > 0) {
          fos.write(buffer, 0, len);
         }
      } catch (Exception e) {
         e.printStackTrace();
         System.out.println("error:" + e.getMessage());
      }

    完成上面几部之后,文件就可以成功上传到指定的文件夹中。但是,这个上传还处在许多的问题,上传文件的大小没有限制,文件的格式没有限制,这些都会带来很大的问题的,在后面的章节中将逐步的解决类似的问题。

  • 相关阅读:
    细看运维85条军规,是否触动了你内心深处那根弦?
    SQL语句的CRUD
    sqlserver数据库类型对应Java中的数据类型
    Struts2文件上传--多文件上传(插件uploadify)
    web.xml文件详解
    关于Java的散列桶, 以及附上一个案例-重写map集合
    hibernate多表查询封装实体
    spring的7个模块
    Struts标签库详解【3】
    Struts标签库详解【2】
  • 原文地址:https://www.cnblogs.com/gyouxu/p/3746491.html
Copyright © 2020-2023  润新知