Struts2 单个文件上传/多文件上传

1导入struts2-blank.war所有jar包:\struts-2.3.4\apps\struts2-blank.war

单个文件上传

upload.jsp

<s:form action="upload2.action" method="post" theme="simple" enctype="multipart/form-data">
<tr>
       <td id="more">
             选择上传文件:<s:file name="file"></s:file><br>
             <s:submit type="button" value="submit"/>
         </td>
  </tr>
</s:form>

struts.xml

 <package name="struts2" extends="struts-default">
    <action name="upload2"class="com.hloytax.wg.upload?.UploadAction1">
           <result name="success">/success.jsp</result>
            <interceptor-ref name="fileUpload">
                 <param name="maximumSize">409600</param> //上传文件大小设置
                // <!--allowedTypes (可选) - 以逗号分割的contentType类型列表(例如text/html), <param name="contentType"> application/txt; </param>            <param name="allowedTypes">
                 </param>
             </interceptor-ref>
             <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>
   </package>
UploadAction1.action
public class UploadAction1 extends ActionSupport {

    /**
     *
     */

    private static final long serialVersionUID = 1L;

    private File file;
      //文件名称
    private String fileFileName;  

    //文件类型
    private String fileContentType;
    //注意:文件名称和文件类型的名称前缀必须相同,
    省略get set 方法 

    @Override
    public String execute() throws Exception{     

        //获取需要上传文件的文件路径
        File uploadFile=new File(ServletActionContext.getServletContext().getRealPath("uploadFile"));
        //判断文件是否上传,如果上传的话将会创建该目录
        if(!uploadFile.exists()){
            uploadFile.mkdir(); //创建该目录
        }  

        /*//第一种文件上传的方法
        //声明文件输入流,为输入流指定文件路径
        FileInputStream input=new FileInputStream(file);
        //获取输出流,获取文件的文件地址及名称
        FileOutputStream out=new FileOutputStream(uploadFile + "\\" +fileFileName);  

        try{
            byte[] b=new byte[1024];//每次写入的大小
            int i=0;
            while((i=input.read(b))>0){
                out.write(b,0,i);
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            input.close();
            out.close();
        }
          */

        //第二种文件上传的方法
        //FileUtils.copyFile(file,new File(uploadFile+"\\"+fileFileName));
       // FileUtils.copyFile(file,new File(uploadFile,fileFileName));
       // System.out.println(uploadFile);

        //第三种方法
      BufferedReader bReader=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
      BufferedWriter bWriter=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(uploadFile+"\\"+fileFileName)));
      System.out.println(uploadFile);
      try{
          char[] str=new char[1024];
          int i=0;
          while((i=bReader.read(str))>0){
              bWriter.write(str,0,i);
          }
      }catch(Exception e){
          e.printStackTrace();
      }finally{
         bReader.close();
          bWriter.close();
          uploadFile.delete();
      }  

        return SUCCESS;
    }
  

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

多文件上传:

private List<File> file;
private List<String> fileContentType;
private List<String> fileFileName;private String savePath;
省略get  set 方法   上传方法  参照单文件上传@Override    public String execute() throws Exception {        List<File> files= getFile();        if (files !=null) {                for (int i = 0; i < files.size(); i++) {                    FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getFileFileName().get(i));                    //建立上传文件的输入流                    System.out.println(getSavePath());                    FileInputStream fis = new FileInputStream(files.get(i));

        byte[] buffer = new byte[1024];        int len = 0;        while ((len = fis.read(buffer)) > 0) {             fos.write(buffer, 0, len);         }         fis.close();         fos.close();     } }      return SUCCESS;                    }

    /**     * 返回上传文件保存的位置     *      * @return     * @throws Exception     */    public String getSavePath() throws Exception {        return ServletActionContext.getServletContext().getRealPath(savePath);    }    public void setSavePath(String savePath) {        this.savePath = savePath;    }
时间: 2024-10-11 16:46:57

Struts2 单个文件上传/多文件上传的相关文章

Struts2系列:(11)文件上传

生活赋予我们一种巨大的和无限高贵的礼品,这就是青春:充满着力量,充满着期待,充满着求知,充满着希望. Struts 2使用FileUpload 拦截器和 Commons FileUpload 组件实现文件上传. FileUploadInterceptor 全名:org.apache.struts2.interceptor.FileUploadInterceptor Interceptor that is based off(基于) of MultiPartRequestWrapper,  whi

【SSH三大框架】Struts2基础第五篇:文件上传

首先,我们建立一个web项目,然后导入:commons-fileupload.commons-io这两个jar包,当然还有其它的struts2需要的jar包 其次,我们还是先配置一下struts2的拦截器:web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/java

ueditor1.3.6jsp版在struts2应用中上传图片报&quot;未找到上传文件&quot;解决方案

摘要: ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案 在struts2应用中使用ueditor富文本编辑器上传图片或者附件时,即使配置好了上传路径信息,也会出现"未找到上传文件"的错误提示,出先该问题的原因是:在配置struts过滤器,过滤路径设置/*方式时,由于struts2框架默认使用apache的Commons FileUpload组件和内建的FileUploadInterceptor拦截器实现上传,会将reque

SSH深度历险记(九) Struts2+DWZ+Uploadify多文件(文件和图片等。)上传

在gxpt_uas系统,为了实现文件(文件和图片等.,灵活配置)批量上传到mongodb,在学习的过程中,知道mongodb,功能,实现思路:在DWZ的基础上參考官方的实例结合现有的GXPT来实现,期间看了非常多的博客,对于这些框架来说,基本的学习还是应该以文档指导为主,多看官方的手冊(即便来说文档非常少),多查资料.总的来看.能够说这是DWZ集成过来的插件,主要是js来实现,逐步的体会到了JS厉害,我们对于这些前端框架的学习都是一个道理的(easyui.DWZ.ExtJs等等),仅仅要我们有个

struts2文件上传,文件类型 allowedTypes

struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript', 3 '.aif' : 'audio/x-aiff', 4 '.aifc' : 'audio/x-aiff', 5 '.aiff' : 'audio/x-aiff', 6 '.au' : 'audio/basic', 7 '.avi' : 'video/x-msvideo', 8 '.bat'

【Java】Struts2文件上传-单文件上传,多文件上传

单文件上传 表单: <form action="upload1.action" method="post" enctype="multipart/form-data"> 姓名:<input type="text" name="name" id="name"><br> 照片:<input type="file" name=&qu

WebUploader插件上传大文件单文件和多文件JAVA版使用总结

一.使用webuploader插件的原因说明 被现在做的项目坑了. 先说一下我的项目架构Spring+struts2+mybatis+mysql 然后呢.之前说好的按照2G上传就可以了,于是乎,用了ajaxFileUpload插件,因为之前用图片上传也是用这个,所以上传附件的时候就直接拿来用了 各种码代码,测试也测过了,2G文件上传没问题,坑来了,项目上线后,客户又要求上传4G文件,甚至还有20G以上的..纳尼,你不早说哦... 在IE11下用ajaxFileUpload.js插件上传超过4G的

Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”

Struts的文件上传问题,相信很多人都会使用allowedTypes参数来配置允许上传的文件类型,如下. [html] view plaincopy <param name="allowedTypes"> image/png,image/bmp,image/jpg </param> 但是,用过这个参数的人都知道,allowedTypes是“文件类型”, 而不是“文件后缀名”,文件类型与文件后缀名有什么区别呢? 就如后缀名为bmp的图片的文件类型为image/b

SpringMVC实现单文件上传、多文件上传、文件列表显示、文件下载

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和SpringMVC文件