点击执行的action
public String docattach (){
String jssessionid=CookieMgr.readCookies(this.getRequest(),"jsessionid");
String strAttchId = this.getRequest().getParameter("attachid");
HashMap map = new HashMap();
InputStream inputStream=null;
try {
inputStream = docuInfoManager.getattachment(Long.parseLong(strAttchId),map);
if (inputStream != null) {
inputStreamMap.put(strAttchId+jssessionid,inputStream);
DocAttachmentInfo docattachmentInfo = (DocAttachmentInfo) map
.get("docattachmentInfo");
if (docattachmentInfo.getAttchMimetype().equalsIgnoreCase(""))
if (docattachmentInfo.getAttchFileext()
.equalsIgnoreCase(".jpg"))
setContentType("image/jpg");
else if (".pdf".equals(docattachmentInfo.getAttchFileext()))
setContentType("application/pdf");
else if (".doc".equals(docattachmentInfo.getAttchFileext()))
setContentType("application/msword");
else if (".xls".equals(docattachmentInfo.getAttchFileext()))
setContentType("application/vnd.ms-excel");
else if (".rar".equals(docattachmentInfo.getAttchFileext()))
setContentType("application/x-zip-compressed");
else
setContentType(docattachmentInfo.getAttchMimetype());// 不同类型的文件对应不同的MIME类型
// 文件名
String fName = docattachmentInfo.getAttchFilename();
fName = new String(fName.getBytes("UTF-8"),"iso-8859-1");
setDownloadFileName(fName);
return "docattach";
} else {
this.getRequest().setAttribute("message", "附件不存在!");
return this.ERROR;
}
} catch (Exception e) {
e.printStackTrace();
this.getRequest().setAttribute("message", "系统出现异常!");
return this.ERROR;
}
}
点击下载保存后的流
public InputStream getInputStreamAttachment() {
InputStream inputStream=null;
String jssessionid=CookieMgr.readCookies(this.getRequest(),"jsessionid");
if(null!=jssessionid){
String strAttchId = this.getRequest().getParameter("attachid");
if(inputStreamMap.get("attchId")!=null) {
strAttchId = inputStreamMap.get("attchId").toString();
inputStreamMap.remove("attchId");
}
inputStream = (InputStream) inputStreamMap.get(strAttchId + jssessionid);
inputStreamMap.remove(strAttchId+ jssessionid );
}
return inputStream;
}
struts.xml配置文件
<action name="emobileservices" class="emobileSearchAction" >
<result name="ajaxpage">/apps/fulltextsearch/search/emobile/EmobileSearch.jsp</result>
<result name="success">/apps/fulltextsearch/search/emobile/EmobileSearchIndex.jsp</result>
<result name="docattach" type="stream">
<param name="contentType">${contentType}</param>
<param name="inputName">inputStreamAttachment</param>
<param name="bufferSize">4096</param>
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
</result>
<result name="docDetail">/apps/fulltextsearch/search/emobile/emobileDocDetail.jsp</result>
<result name="error">/common/emobileErrMsg.jsp</result>
</action>
注意:此配置将会支持safari浏览器
分享到:
相关推荐
兼容性好IE7+, FF3.6+, Chrome*,Safari4+,遨游等主流浏览器 选择文件的按钮完全可以自定义 进度条、速度、剩余时间等附属信息 基本的自定义属性及函数,如文件多选、上传成功的响应函数等 示例代码java实现...
另外在浏览器支持方面,它支持以下的浏览器 IE7+, FF, Chrome, Safari, Opera。 介绍 http://www.open-open.com/lib/view/1364870847640 使用教程 ...
兼容:支持大部分主流浏览器,比如 IE、Firefox、Safari、Chrome、Opera ver 4.0.4 (2011-12-11) 新增: 阿拉伯语语言包。 改善: 上传文件时显示上传中提示。 改善: JSON解析失败时,通过弹出层显示服务器返回...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX...
支持跨浏览器的自动化测试【ie、ff、chrome、safari、opera、phantonjs、htmlunit、android、iphone、ipad、winddows phone、BlackBerry】 支持跨操作系统的自动化测试【windows、linux、MAC】 支持多中编程语言编写...
selenium简介 selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为... * 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome * 支持分布式测试用例
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。 系统主要运用在:在系统中一些分页或者样式交互事件处理中使用到了(比如地址选择框) 前端用到了ajax AJAX即"Asynchronous Javascript...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
为了搞清这个陌生又熟悉的bind,google一下,发现javascript1.8.5版本中原生实现了此方法,目前IE9+,ff4+,chrome7+支持此方法,opera和safari不支持(MDN上的说明)。 bind的作用和apply,call类似都是改变函数的...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...
它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX...
测试环境 浏览器: IE6+, FF 3.5.5, Opera 10, Chrome 4.0.249, Safari 4.0.3 二. 例子 代码如下: <form name=”test-form” action=”” method=””> <input type=”checkbox” name=”kk”> <form...