`
Ramls
  • 浏览: 37593 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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> 


Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location] 

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream 

这两个错误的原因是缺少jar包. 
commons-fileupload-1.2.1.jar 
commons-io-1.4.jar 

 

分享到:
评论

相关推荐

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2文件上传下载实例

    在“struts2文件上传下载实例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于许多Web应用程序来说是必不可少的特性。 首先,`pom.xml`文件是Maven项目对象模型的配置文件,它定义了项目的...

    Struts2文件上传下载和表单重复提交问题

    综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。

    struts2文件上传下载(注解版)

    在本项目中,我们关注的是Struts2中的文件上传和下载功能,这些功能是Web开发中常见的需求,尤其在处理用户数据提交或提供资源下载时。下面将详细介绍这个“struts2文件上传下载(注解版)”项目的关键知识点。 1. ...

    struts2实现文件上传下载

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。

    struts2 文件上传下载

    在Struts2中,文件上传和下载是常见的功能,它们允许用户从服务器上下载文件或向服务器上传文件。理解并掌握这一部分的知识对于开发交互性强的Web应用至关重要。 ### 一、文件上传 1. **使用Struts2的FileUpload...

    Struts2文件上传下载

    在Struts2中,文件上传和下载是常见的功能,它们使得用户能够交互地处理文件,如上传图片、文档或者下载资源。下面我们将深入探讨如何利用Struts2实现文件上传和下载。 一、文件上传 1. 配置Struts2核心拦截器:...

    第八章:struts2文件上传下载.ppt

    第八章:struts2文件上传下载.ppt

    Struts2文件上传下载 中文乱码

    在Struts2框架中,文件上传和下载是常见的功能需求,但处理中文文件名或内容时,可能会遇到中文乱码的问题。这个问题主要涉及到字符编码的处理,包括HTTP请求的编码、文件名的编码以及文件内容的编码。接下来,我们...

    struts2文件上传与下载

    在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...

    Struts2文件上传与下载

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...

    struts2 文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...

Global site tag (gtag.js) - Google Analytics