以下代码是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文件下载功能,并理解其核心概念。 首先,创建一个新的Web工程是必要的。如果你使用的是MyEclipse,可以直接创建一个带有Struts支持的项目;如果是Eclipse,需要...
在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
本程序使用的是Struts技术,实现了文件的上传和下载
Struts中文文档是开发者学习和理解Struts框架的重要参考资料,它提供了详细的API介绍、配置指南、示例代码以及常见问题解答,帮助开发者快速上手并熟练掌握Struts框架。 1. **MVC模式**:在Struts框架中,模型负责...
在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...
总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...
在Struts2中处理文件下载是常见的需求,比如用户请求下载服务器上的文件,如PDF、图片或其他类型的文档。本案例"Struts2之struts012"将深入探讨如何在Struts2中实现文件下载的功能。 首先,我们需要创建一个Action...
从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...
在Struts框架中,文件上传和下载是常见的功能需求,尤其在处理用户数据交互时。 一、文件上传 1. Struts1中的文件上传:在Struts1中,文件上传主要依赖于`commons-fileupload`和`commons-io`两个库。首先需要在`...
在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...
综上所述,使用Struts2.1.3实现文件下载功能涉及到的主要步骤包括:配置Struts2环境、编写处理下载的Action类、配置struts.xml、在JSP页面创建下载触发点以及对文件路径的安全处理。这是一个基本的流程,具体实现...
这个“Struts中文文档”包含了关于Struts框架的详细信息,旨在帮助开发者理解和掌握该框架的使用,从而更高效地开发Web应用。 Struts的核心理念是MVC(Model-View-Controller)设计模式,它将业务逻辑、数据表示和...
在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...
在“struts2文件下载”这个主题中,我们主要关注的是如何使用Struts2来实现文件的下载功能。这篇博客文章可能探讨了在Struts2环境下处理文件下载的步骤和技术。 在Struts2中,`DownloadAction.java`很可能是一个...
在Struts框架中,文件的上传和下载是常见的功能需求,用于实现用户交互,如上传图片、文档等,或者提供资源的下载服务。下面将详细探讨Struts中文件上传和下载的实现机制。 一、文件上传 1. 配置文件:在Struts2中...
Struts1和Struts2是两个非常著名的Java Web框架,它们都提供了处理文件上传和下载的功能,但实现方式有所不同。本文将深入探讨这两个框架在文件操作方面的具体实现。 首先,让我们了解一下Struts1中的文件上传功能...
使用struts2框架进行文件的上传并限制文件的大小与类型,使用struts2框架实现文件下载
在Struts2中实现下载功能是一项常见的需求,这通常涉及到处理文件流并将其发送到客户端。以下是如何在Struts2中实现下载功能的详细步骤: 1. **Struts2配置**: 在Struts2的配置文件(例如struts.xml或类似的配置...