`

struts2实现文件上传和下载

阅读更多

一、文件上传

         1、客户端表单 

                

<s:form action="upload" theme="simple" enctype="multipart/form-data">
    <table align="center" border="1" width="50%">
          <tr> 
                   <td>
	         <s:file name="file" label="file1" id="fileid"></s:file>
						
	    </td>
          </tr>

          <tr>
	      <td>
	            <s:submit value="submit"></s:submit>
	       </td>
           </tr>
     </table>
</s:form>

 2 、struts.xml配置

     

<action name="upload" class="com.test.action.UploadAction">
     <result name="success">/uploadResult.jsp</result>
     <result name="input">/upload.jsp</result>
     <interceptor-ref name="fileUpload">
         <param name="maximumSize">409600</param>
         <param name="allowedTypes">text/plain</param>
     </interceptor-ref>
     <interceptor-ref name="defaultStack"></interceptor-ref>
  </action>

 

3、action类

     

for (int i = 0; i < file.size(); i++) {
     InputStream is = new FileInputStream(file.get(i));
    String root = ServletActionContext.getRequest().getRealPath("/upload");
     File destFile = new File(root, this.getFileFileName().get(i));
     OutputStream os = new FileOutputStream(destFile);
     byte[] buffer = new byte[400];
    int length = 0;
    while ((length = is.read(buffer)) > 0) {
	os.write(buffer, 0, length);}
      is.close();
      os.close();
}

 二、文件下载

        1、客户端表单

                

<s:a href="/MyStructs2/download.action">download</s:a>

      2、struts.xml配置

             

 <action name="download" class="com.test.action.DownloadAction">
          <result name="success" type="stream">
               <param name="contentType">text/plain</param>
               <param name="inputName">downloadFile</param>
               <param name="contentDisposition">attachment;filename="linux.txt"</param>
               <param name="bufferSize">1024</param>          
          </result>    
  </action>

     3、action类实现getDownloadFile方法

       

public InputStream getDownloadFile()
{
return ServletActionContext.getServletContext().getResourceAsStream("/upload/linux3.txt");
}

 三、测试一下吧!

       

分享到:
评论
2 楼 fushengfei 2011-03-29  
叶凡520 写道
我想使用楼主这个方法 但是 好像会报错的  说的是 不能找到 一个变量名叫downloadFile的java.io.InputStream型变量,然后我就到Action中写了这个变量,但还是不行,请问楼主,能不能把这个说得详细点,原始的下载方法真的很烦,代码得一堆,这个简单 但是报错啊,呵呵,麻烦了。




你好!在进行文件下载的时候,必须保证upload目录下有"linux.txt"文件
否则getDownloadFile()返回为空,就会抛出找不到downloadFile的java.io.InputStream型变量。  
1 楼 叶凡520 2011-03-24  
我想使用楼主这个方法 但是 好像会报错的  说的是 不能找到 一个变量名叫downloadFile的java.io.InputStream型变量,然后我就到Action中写了这个变量,但还是不行,请问楼主,能不能把这个说得详细点,原始的下载方法真的很烦,代码得一堆,这个简单 但是报错啊,呵呵,麻烦了。

相关推荐

    使用Struts2实现文件上传和下载的所有方案

    在本文中,我们将深入探讨使用Struts2实现文件上传和下载的各种方案。 ### 文件上传方案 #### 1. 使用Struts2进行文件普通上传 文件上传的核心是处理`multipart/form-data`类型的表单数据。Struts2通过`Struts2-...

    struts2实现文件上传下载

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

    struts2实现多文件上传下载

    网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...

    struts实现的文件上传下载功能

    总结起来,使用Struts实现文件上传下载涉及前端表单设计、后端处理逻辑、文件存储策略以及安全控制等多个方面。在实践中,我们还需要考虑到性能优化和用户体验提升,例如使用异步上传、进度条展示等技术。

    Struts2实现文件的上传下载

    Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中,提供了丰富的功能,包括文件的上传和下载。在本项目中,我们关注的是如何使用Struts2来实现实时的文件交互操作,即文件的上传与...

    struts与hibernate实现文件的上传与动态下载

    本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...

    Struts2实现文件上传

    在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...

    struts2文件上传下载源代码

    描述中的链接指向了CSDN博主johnjobs的一篇文章,这篇文章详细解释了如何在Struts2中实现文件上传。博主可能讨论了以下关键点: 1. **配置Struts2 Action**:在`struts.xml`配置文件中,你需要定义一个Action,该...

    Struts2实现文件上传下载

    以上是Struts2实现文件上传和下载的基本步骤和关键概念。在实际应用中,你可能还需要考虑性能优化、错误处理、用户体验等方面。阅读博文(https://chenzheng8975.iteye.com/blog/1733841)将为你提供更具体的实现...

    Struts2实现文件上传功能

    下面将详细阐述如何使用Struts2来实现文件上传功能。 1. **Struts2文件上传组件** Struts2框架集成了一个名为`struts2-convention-plugin`的插件,它提供了文件上传的支持。主要依赖于`Commons FileUpload`和`...

    struts2文件上传和下载

    Struts2是一个非常流行的Java Web框架,用于构建企业级应用...通过以上步骤,开发者可以在Struts2框架下实现文件上传和下载功能,满足用户对数据交换的需求。但一定要注意安全性和性能优化,以确保应用的稳定和健壮。

    struts2 上传文件及打包下载zip

    在这个"struts2 上传文件及打包下载zip"的示例中,我们将探讨如何利用Struts2实现文件上传和下载功能。 首先,文件上传是Web应用程序中的常见需求。在Struts2中,我们可以使用`Struts2`提供的`CommonsFileUpload`...

    struts实现文件上传和下载源代码

    在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...

    struts1和struts2分别实现文件上传下载功能

    Struts1和Struts2是两个非常著名的Java Web框架,它们都提供了处理文件上传和下载的功能,但实现方式有所不同。本文将深入探讨这两个框架在文件操作方面的具体实现。 首先,让我们了解一下Struts1中的文件上传功能...

    struts2 文件的上传和下载

    这篇博客文章将探讨如何在Struts2框架下实现文件的上传和下载操作。 首先,我们需要了解文件上传的基本流程。在Struts2中,文件上传通常涉及到以下几个步骤: 1. **创建上传表单**:在HTML或JSP页面中,使用`...

    eclipse下利用struts2实现文件的上传和下载

    在Eclipse环境中,使用Struts2框架实现文件的上传和下载是常见的Web开发任务。Struts2是一个强大的MVC框架,提供了丰富的功能来处理用户请求和响应,包括文件操作。以下是一个详细的步骤和知识点解析: 1. **Struts...

    基于Struts2的文件上传下载功能的完整源代码。

    在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...

    swfuplaod+struts2实现多文件上传

    在实现文件上传时,必须注意以下安全问题: 1. **文件类型检查**:限制上传的文件类型,防止恶意用户上传可执行文件或脚本。 2. **文件名重命名**:避免文件覆盖或路径遍历攻击,对上传的文件名进行重命名。 3. **...

    struts2 实现文件批量上传

    本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...

Global site tag (gtag.js) - Google Analytics