- 浏览: 1692751 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1323)
- easyui学习 (21)
- jquery (51)
- css (21)
- js (103)
- html (19)
- java (95)
- 测试工具 (7)
- oracle (45)
- eclipse (9)
- spring (8)
- 开源框架 (111)
- struts (12)
- hsqlbd (2)
- h2database (2)
- maven (8)
- activiti (2)
- sql语句 (7)
- fmpp (1)
- apache (2)
- tomcat (6)
- jbpm (2)
- ant (20)
- mysql (10)
- 业务需求 (54)
- ralasafe (3)
- Quartz (4)
- mybatis (8)
- flex (6)
- html5 (16)
- apache工具 (4)
- hibernate (5)
- linux (109)
- powerdesigner (3)
- 报表 (1)
- log4j (2)
- junit (1)
- shiro (4)
- wap (3)
- php (28)
- mantis (1)
- poi (3)
- extjs (1)
- 安防 (34)
- 网络 (113)
- UltraEdit (1)
- 手机 (9)
- freemarker (19)
- jquery mobile (28)
- css3 (1)
- 微信 (9)
- nodejs (7)
- 项目管理 (14)
- 文档 (13)
- ibatis (22)
- ftp (3)
- spring MVC (9)
- groovy (2)
- AngularJS (19)
- nginx (15)
- 会计 (5)
- hive (1)
- 分布式 (8)
- 设计模式 (4)
- velocity (2)
- 爬虫 (2)
- git (1)
- thymeleaf (4)
- activemq (5)
- bootstrap (1)
- Spring Batch (1)
- memcache (20)
- ttserver (1)
- Jenkins (1)
- cxf (1)
- axure (2)
- 银行金融 (11)
- c语言 (2)
- 大数据 (4)
- drools (4)
- python (2)
- 交易所 (1)
- haproxy (1)
- dubbo (3)
- dos (3)
- 人力资源 (4)
- 支付 (1)
- Intellij IDEA (1)
- IPO (1)
- springboot (1)
- 质量管理 (7)
- svn (1)
- 其他 (8)
- 阿里云 (2)
- 多媒体设计 (2)
- 数据库 (4)
- wps (0)
最新评论
-
masuweng:
en
Native.js -
rmnjava:
我按照你的方法写的,不起作用啊
easyui验证的删除和恢复 -
rmnjava:
原地址打不开了呀
easyui验证的删除和恢复 -
sunteng:
sunteng 写道这是json 吗[{url:'aaa'}, ...
freemarker解析json数组 -
sunteng:
这是json 吗
freemarker解析json数组
在下载2007版的word,excel等文件时,下载下来的时候总是xml,如果用word或者excel打开的时候确实还是原来的内容,但这让用户体验完全不行。
经过我的测试,确认是我们在生成流时指定的返回类型标签不对造成的,只要指定了正确的返回类型就没问题了
代码如下:
根据扩展名指定返回的类型
/** * 根据拓展名取的类型 * @param extension * @return String */ public static String getContentValue(String extension ){ if(extension.equalsIgnoreCase("dotx")){ return dotx ; }else if(extension.equalsIgnoreCase("docx")){ return docx ; }else if(extension.equalsIgnoreCase("xlsx")){ return xlsx ; }else if(extension.equalsIgnoreCase("pptx")){ return pptx ; }else{ return "application/octet-stream;charset=ISO8859-1"; } }
返回struts2的标签
@Results( { @Result(name = "success", location = "attachment-file.jsp"), @Result(name = "download", type = "stream", params = { "contentType","${contentType}", "inputName", "inputStream", "contentDisposition","filename=${downAttachmentName}", "bufferSize","4096" , "inputPath", "${downAttachmentUrl}" }) })
下载的代码
/** * 附件下载 * @return String */ public String downloadAttachment() throws Exception { try { String id = Struts2Utils.getRequest().getParameter("sid"); if(StrUtil.isEmptyWithTrim(id)){ return showError("参数传递错误!"); } AttachmentStore ps; try { ps = attachmentStoreManager.getAttachment(id); downAttachmentName = ps.getAttachmentName()+"."+ps.getAttachmentType(); logger.info("下载extension-------"+ps.getAttachmentType()); String contentType = Constant.getContentValue(ps.getAttachmentType()); logger.info("下载contentType-------"+contentType); setContentType(contentType); //downAttachmentName = new String(downAttachmentName.getBytes(), "iso8859-1"); //downAttachmentName = new String(downAttachmentName.getBytes(), "ISO8859-1"); downAttachmentName = java.net.URLEncoder.encode(downAttachmentName, "UTF-8"); //linux下解决乱码 downAttachmentUrl = ps.getAbsolutePath()+ps.getSid()+"."+ps.getAttachmentType(); } catch (AttachmentStoreException e) { logger.error("附件查询失败,附件已经不存在或被删除"+e); ps = null; } if(ps == null){ return showError("附件已经不存在或被删除!"); } } catch (Exception e) { throw new Exception(""); } return "download"; } /** * 打开附件下载流 * @return InputStream */ public InputStream getInputStream() throws Exception { InputStream input1 = null; try { logger.info("getInputStream--"); input1 = new FileInputStream(downAttachmentUrl); } catch (Exception e) { throw new Exception(""); } return input1; }
发表评论
-
Lombok
2019-04-10 13:52 319Lombok能以简单的注解 ... -
Dozer
2019-04-08 13:49 285Dozer是一种Java Bean到Java Bean的映射 ... -
Spring security框架
2019-04-02 11:20 309一个能够为基于Spring的企业应用系统提供声明式的安全訪问控 ... -
java中常用的对象类型(po,vo,bo)
2018-04-25 10:34 403PO(persistant object) 1.持久对象 ... -
HikariCP
2018-03-12 08:22 861http://brettwooldridge.github. ... -
Amoeba Mysql读写分离
2018-03-07 11:37 392Amoeba(变形虫)项目,专 ... -
UnicastRemoteObject.exportObject使用
2018-03-01 13:45 1540public class CalculatorServ ... -
Spring对RMI的支持
2018-03-01 13:18 461public class SimpleObject { ... -
RMI使用
2018-03-01 12:50 354搭建一个RMI服务的过程分为以下7步; 1,创建远程方法接 ... -
volatile关键字
2018-02-28 13:13 326volatile关键字的两层语义一旦一个共享变量(类的成员变量 ... -
Jackson简单封装
2017-09-15 09:20 1010import java.io.IOException ... -
Http与Servlet工具类
2017-09-15 09:14 686/** * Http与Servlet工具类. ... -
金额格式转换
2017-09-15 09:21 571import java.math.BigDec ... -
日期工具类
2017-09-14 09:27 334public static String form ... -
编码解码工具类
2017-09-14 09:24 717import java.io.UnsupportedE ... -
Properties文件工具类
2017-09-14 08:59 574import java.io.IOExcepti ... -
全角转半角
2017-09-14 08:51 454/** * 全角转半角 * ... -
UUIDGenerator生成唯一编码
2017-09-14 08:46 1333生成唯一编码 import java.net.Ine ... -
ip转换为long
2017-09-12 17:27 1149public class IpUtils { pu ... -
https证书问题
2017-08-23 08:42 598https用于绕过证书不对情况 import java.n ...
相关推荐
通过上述步骤,我们就可以在Struts2框架下实现文件流方式的下载功能,无论是Excel、TXT还是图片,都能有效地直接返回给浏览器,让客户端进行下载。这种方式既节省了服务器资源,也提高了用户体验。在实际项目中,...
在 Struts2 的配置文件 `struts.xml` 中,定义一个名为 "exportExcel" 的 action,指向这个 Action 类,并配置相应的结果。 3. **配置结果类型**:在 `struts.xml` 中,`result` 元素的 `type` 属性应设置为 ...
"Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...
为了将生成的Excel文件发送给用户下载,我们需要在Struts2的配置文件(struts.xml)中定义一个Result类型,例如`stream`,然后在Action类中设置响应头信息,并将工作簿写入到OutputStream中。 ```xml ...
配置Struts2的配置文件(`struts.xml`),使`ExcelDownloadAction`与特定的URL映射关联,并确保Action返回一个表示文件下载的Result类型,如`stream`。 在客户端,用户可以通过点击一个链接或按钮触发这个Action,...
### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...
### Struts2生成XML文件详解 #### 一、引言 在Web开发中,XML(可扩展标记语言)是一种常用的数据交换格式。Struts2框架作为Java Web开发中的一种流行框架,提供了丰富的功能来处理XML数据。本文将详细介绍如何...
- `struts.xml`:Struts2配置文件,定义Action和结果类型。 - `Action类`:处理业务逻辑,如查询数据、分页、导出Excel。 - `JSP页面`:显示查询结果和分页控件,使用jQuery与服务器通信。 - `DAO(数据访问对象...
项目:Struts2UpAndDownLoadFile 1.实现文件的上传和下载 项目:Struts2HandleExcelFile 1.实现文件的上传和下载 2.利用apache的poi-3.5-FINAL-20090928.jar组件实现创建Excel表格。
4. **Struts2 Action结果处理**:配置Struts2 Action的结果类型为“stream”,设置contentDisposition属性为“attachment”以触发文件下载对话框,并指定文件名为“export.xls”。 5. **整合SSH**:在SSH框架下,...
Struts2是一个基于MVC设计模式的Java EE框架,它提供了强大的动作控制、拦截器和结果类型等功能,使得Web应用的开发更加简洁高效。而Apache POI是一个开源库,专门用于读写Microsoft Office格式的文件,包括Excel。 ...
在Struts2中,XML配置文件用于定义Action、结果类型、拦截器栈等。例如,`struts.xml`文件通常用于配置Struts2的核心设置。XML配置文件的好处是清晰、可读性强,但也可能导致配置文件过于庞大,不易维护。 **整合...
Struts实时生成Excel文件下载
2. **Action配置**:在Struts2的配置文件(struts.xml)中,需要定义一个Action,指定文件上传的处理方法,并配置允许的文件类型和大小限制。 3. **Action实现**:在Action类中,创建一个`File`对象和一个`String`...
在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...
Struts2 和 Apache POI 的整合允许开发者轻松地实现在 Web 应用程序中导出 Excel 文件的功能。Apache POI 是一个 Java 库,它提供了处理 Microsoft Office 格式(如 .xls 和 .xlsx)的能力,包括创建、读取和修改 ...
Struts2框架是Java Web开发中的一个流行MVC(Model-View-Controller)框架,它提供了丰富的功能,包括处理表单提交、文件上传等。在Struts2中,文件上传是一个常见的需求,可以帮助用户从客户端上传文件到服务器。...
在Struts2中实现文件下载的功能,可以帮助用户从服务器获取并保存文件到本地计算机,例如这里的"1.xls"文件。下面我们将深入探讨如何在Struts2框架下实现文件下载的实例。 首先,我们需要在项目的Web应用目录结构中...
总结,这个项目展示了如何结合Struts2的MVC架构、Apache POI的Excel处理能力和JDBC的数据库操作,实现从Excel文件批量导入数据到SQL Server 2000数据库的功能。这个过程涉及文件上传、数据读取、数据库交互等多个...
在Struts2中,`struts.xml`文件是核心配置文件,用于定义应用的行为、动作映射、结果类型、拦截器等。这篇博文主要探讨了`struts.xml`文件的元素结构,下面我们将详细解析这些关键元素。 首先,`struts.xml`文件...