struts2文件上传下载

简介:
struts2的文件上传和下载
 
 
文件上传部分:
 
上传页面 upload.jsp
< s:form action  ="upload" method  ="POST" enctype  ="multipart/form-data"  >    
                 < s:file name  ="file" label  ="上传文件" /> 
                 < s:submit  />    
         </s:form >
 
上传 UploadAction.java
   private File file; 
    
   private String fileFileName; 
    
   private String fileContextType; 
    
   private String root; 
    
   private HttpServletRequest request; 
   private Map session; 
    
  @Override 
   public String execute()  throws Exception { 
     
    session.put( "fileFileName", fileFileName); 
     
     //取文件后缀名 
    String lastname= null
     int i = fileFileName.lastIndexOf('.'); 
    lastname=fileFileName.substring(i+1);        
                    
     //取当前日期 
    SimpleDateFormat sdf =  new SimpleDateFormat( "yyyyMMdd"); 
    Calendar calendar = Calendar.getInstance(); 
    String date=sdf.format(calendar.getTime()); 
     
     //10亿的随机数 
    java.util.Random r= new java.util.Random();    
    String radom=String.valueOf(r.nextInt(1000000000)); 
     
    fileFileName=date+radom+ "."+lastname; 
     
    session.put( "fname", fileFileName); 
     
    InputStream is= new FileInputStream(file); 
     
    root= ServletActionContext.getRequest().getRealPath( "/upload") ; //存储到apache项目发布目录上 
//    String root="D:\\a1/upload";//存储到项目文件夹里 
     
    session.put( "fpath", root); 
    File copyFile= new File(root,fileFileName); 
     
    OutputStream os= new FileOutputStream(copyFile); 
     
     byte[] buffer= new  byte[400]; 
     
     int length=0; 
     
     while(    (length=is.read(buffer))    >    0     ){ 
      os.write(buffer, 0, length); 
    } 
     
    is.close(); 
     
    os.close(); 
     
     return SUCCESS; 
  }
 
struts.xml配置
    <action name="upload" 
      class="com.enorth.mpup.action.UploadAction"> 
       < result  name ="success" >uploadshow.jsp </result> 
       < result  name ="input" >index.jsp </result> 
     </action>
 
文件下载部分:
下载页面 uploadshow.jsp
 
     < a     href ="download.action"      target ="_blank" > 
   < %=session.getAttribute("fileFileName") % > 
     </a>
 
下载 FileDownAction.java
 
   private String fileName; // 初始的通过param指定的文件名属性 

   private String inputPath; // 指定要被下载的文件路径 

   private HttpServletRequest request; 
    
   private Map session; 
    
    
   public InputStream getInputStream()  throws Exception { 

     // 通过 ServletContext,也就是application 来读取数据 

    inputPath= "/upload/"+(String)session.get( "fname"); 
     
     return ServletActionContext.getServletContext().getResourceAsStream(inputPath); 
     
  } 

   public String execute()  throws Exception { 
     
     return SUCCESS;    
     
  } 

   /** 提供转换编码后的供下载用的文件名 */ 

   public String getDownloadFileName() { 

    fileName=(String) session.get( "fname"); 
     
    System.out.println(fileName); 
     
    String downFileName = fileName; 

     try { 

      downFileName =  new String(downFileName.getBytes(),  "ISO8859-1"); 

    }  catch (UnsupportedEncodingException e) { 

      e.printStackTrace(); 

    } 

     return downFileName; 

  }
 
struts.xml配置
    <!--  下载现有文件 --> 
     < action  name ="download"  class ="com.enorth.mpup.action.FileDownAction" > 
    <!--     <param name="inputPath">/download/aaa.txt</param> -->    
      <!--  初始文件名    
      <param name="fileName">aaa.txt</param>
--> 
       < result  name ="success"  type ="stream" > 
         < param  name ="contentType" > 
          application/octet-stream;charset=ISO8859-1 
         </ param > 
         < param  name ="inputName" >inputStream </ param > 
        <!--  使用经过转码的文件名作为下载文件名,downloadFileName属性    
          对应action类中的方法 getDownloadFileName() 
--> 
         < param  name ="contentDisposition" > 
          attachment;filename="${downloadFileName}" 
         </ param > 
         < param  name ="bufferSize" >4096 </ param > 
       </ result > 
     </ action >
 
以上均为部分核心文件.
 
 本文转自chainli 51CTO博客,原文链接:http://blog.51cto.com/lichen/153762,如需转载请自行联系原作者
相关文章
|
SQL JavaScript Java
SpringMVC之文件上传下载以及jrebel的使用
SpringMVC之文件上传下载以及jrebel的使用
64 0
|
存储 前端开发 JavaScript
SpringMVC之文件上传下载
SpringMVC之文件上传下载
157 0
|
前端开发 Java Spring
SpringMvc--文件上传下载
SpringMvc--文件上传下载
55 0
|
Java
struts2实现的文件上传下载案例(一)、FileUpLoad
struts2实现的文件上传下载案例(一)、FileUpLoad
266 0
struts2实现的文件上传下载案例(一)、FileUpLoad
|
前端开发 数据库
struts2实现的文件上传下载案例(二)、FileUpLoad文件的下载
struts2实现的文件上传下载案例(二)、FileUpLoad文件的下载
122 0
|
Java 开发者
Struts2的文件下载 | 学习笔记
快速学习 Struts2的文件下载,介绍了 Struts2的文件下载系统机制, 以及在实际应用过程中如何使用。
|
Web App开发 Java 数据库
|
Java 缓存
09 Struts2 实现文件上传下载
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxdeng/article/details/81710554 文件上传对Struts2来说是一件非常容易的事情。
1151 0
|
JSON Java 网络安全
SSH框架之SpringMVC文件上传功能代码
版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/79327717 简介  ...
1049 0

热门文章

最新文章