`
jslfl
  • 浏览: 322090 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

struts 文件下载

阅读更多
以下代码是struts1中的action中
一般下载有三种方式,我常用的是这两种,做个记录

String dlpath = request.getParameter("dlpath");//文件相对路径
        if(dlpath == null || "".equals(dlpath.trim())){
        return null;
        }
       
        //得到下载文件名
        //可能还会查询数据库中当初保存时的名字
        String fileName = "";
        if(dlpath.lastIndexOf("/") > 0) {
        fileName = new String(dlpath.substring(dlpath.lastIndexOf("/")+1, dlpath.length()).getBytes("GB2312"), "ISO8859_1");
        }else if(dlpath.lastIndexOf("\\") > 0) {
        fileName = new String(dlpath.substring(dlpath.lastIndexOf("\\")+1, dlpath.length()).getBytes("GB2312"), "ISO8859_1");
        }

        response.reset();
        response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=\""+fileName + "\"");

//=================第一种,相对最简单=====================
        RequestDispatcher dispatcher = request.getRequestDispatcher(dlpath);    
        if(dispatcher != null){    
            dispatcher.forward(request,response);    
        }    
        response.flushBuffer();
//=================/第一种===============================      

//=================第二种,输入/出流方式=====================
//            File uploadFile = new File(request.getSession().getServletContext().getRealPath(dlpath));
//            InputStream is = new FileInputStream(uploadFile);
//            BufferedInputStream bis = new BufferedInputStream(is);
//            OutputStream os = response.getOutputStream();
//            BufferedOutputStream bos = new BufferedOutputStream(os);
//               
//            int bytesRead = 0;
//            byte[] buffer = new byte[2048];
//            while((bytesRead = bis.read(buffer,0,2048)) != -1){
//                bos.write(buffer, 0, bytesRead);
//            }
//            bos.flush();
//            is.close();
//            bis.close();
//            os.close();
//            bos.close();
//==================/第二种============================================       
        return null ;


注意:
dlpath要以/开头,dispatcher才正确
response的设置和流的关闭,在struts action里的话,一定最后要返回null,因为在第一种方法里,dispatcher.forward后,不返回null,框架再返回就会出错,response已关闭
分享到:
评论

相关推荐

    Struts的文件下载

    在Struts中实现文件下载是一项常见的功能,尤其在处理用户请求获取服务器上的静态或动态资源时。这篇博文将深入探讨如何在Struts框架下实现文件下载的功能。 首先,我们需要了解文件下载的基本原理。当用户点击下载...

    struts文件下载

    在本文中,我们将深入探讨如何实现一个简单的Struts文件下载功能,并理解其核心概念。 首先,创建一个新的Web工程是必要的。如果你使用的是MyEclipse,可以直接创建一个带有Struts支持的项目;如果是Eclipse,需要...

    struts2实现文件下载功能

    在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...

    struts2文件上传下载源代码

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

    Struts文件下载

    本程序使用的是Struts技术,实现了文件的上传和下载

    STRUTS中文文档

    Struts中文文档是开发者学习和理解Struts框架的重要参考资料,它提供了详细的API介绍、配置指南、示例代码以及常见问题解答,帮助开发者快速上手并熟练掌握Struts框架。 1. **MVC模式**:在Struts框架中,模型负责...

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

    在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...

    struts2_uploadify带进度条的多文件上传下载

    总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...

    Struts2之struts2文件下载详解案例struts012

    在Struts2中处理文件下载是常见的需求,比如用户请求下载服务器上的文件,如PDF、图片或其他类型的文档。本案例"Struts2之struts012"将深入探讨如何在Struts2中实现文件下载的功能。 首先,我们需要创建一个Action...

    struts2中文学习文档

    从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...

    struts框架-文件上传下载

    在Struts框架中,文件上传和下载是常见的功能需求,尤其在处理用户数据交互时。 一、文件上传 1. Struts1中的文件上传:在Struts1中,文件上传主要依赖于`commons-fileupload`和`commons-io`两个库。首先需要在`...

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

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

    struts2.1.3 简单下载文件

    综上所述,使用Struts2.1.3实现文件下载功能涉及到的主要步骤包括:配置Struts2环境、编写处理下载的Action类、配置struts.xml、在JSP页面创建下载触发点以及对文件路径的安全处理。这是一个基本的流程,具体实现...

    Struts中文文档

    这个“Struts中文文档”包含了关于Struts框架的详细信息,旨在帮助开发者理解和掌握该框架的使用,从而更高效地开发Web应用。 Struts的核心理念是MVC(Model-View-Controller)设计模式,它将业务逻辑、数据表示和...

    struts2文件上传下载

    在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...

    struts2文件下载

    在“struts2文件下载”这个主题中,我们主要关注的是如何使用Struts2来实现文件的下载功能。这篇博客文章可能探讨了在Struts2环境下处理文件下载的步骤和技术。 在Struts2中,`DownloadAction.java`很可能是一个...

    Struts文件的上传和下载

    在Struts框架中,文件的上传和下载是常见的功能需求,用于实现用户交互,如上传图片、文档等,或者提供资源的下载服务。下面将详细探讨Struts中文件上传和下载的实现机制。 一、文件上传 1. 配置文件:在Struts2中...

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

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

    struts2 上传下载文件

    使用struts2框架进行文件的上传并限制文件的大小与类型,使用struts2框架实现文件下载

    struts2下载功能实现

    在Struts2中实现下载功能是一项常见的需求,这通常涉及到处理文件流并将其发送到客户端。以下是如何在Struts2中实现下载功能的详细步骤: 1. **Struts2配置**: 在Struts2的配置文件(例如struts.xml或类似的配置...

Global site tag (gtag.js) - Google Analytics