`

java 实现下载文件 支持safari,ff,ie等

    博客分类:
  • ssh2
阅读更多

 点击执行的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浏览器

0
1
分享到:
评论

相关推荐

    mojolicious-stream-upload:mojolicious 实现的 stream 大文件上传的后端服务

    兼容性好IE7+, FF3.6+, Chrome*,Safari4+,遨游等主流浏览器 选择文件的按钮完全可以自定义 进度条、速度、剩余时间等附属信息 基本的自定义属性及函数,如文件多选、上传成功的响应函数等 示例代码java实现...

    实现类Excel表格编辑功能的jQuery插件:Handsontable

    另外在浏览器支持方面,它支持以下的浏览器 IE7+, FF, Chrome, Safari, Opera。 介绍 http://www.open-open.com/lib/view/1364870847640 使用教程 ...

    编辑器 KindEditor 4.0.4

    兼容:支持大部分主流浏览器,比如 IE、Firefox、Safari、Chrome、Opera ver 4.0.4 (2011-12-11) 新增: 阿拉伯语语言包。 改善: 上传文件时显示上传中提示。 改善: JSON解析失败时,通过弹出层显示服务器返回...

    jquery50个实例下载

     它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    jquery-1.2.3.rar

    它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    jquery v1.9.1 免费版

    它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX...

    Selenium:selenium自动化的学习随笔

    支持跨浏览器的自动化测试【ie、ff、chrome、safari、opera、phantonjs、htmlunit、android、iphone、ipad、winddows phone、BlackBerry】 支持跨操作系统的自动化测试【windows、linux、MAC】 支持多中编程语言编写...

    python编程使用selenium模拟登陆淘宝实例代码

    selenium简介 selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为... * 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome * 支持分布式测试用例

    15天学会jquery

    它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    jquery框架的js库

    它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    JQUERY 1.3.2

     它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    GoodProject Maven Webapp.zip

    jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。 系统主要运用在:在系统中一些分页或者样式交互事件处理中使用到了(比如地址选择框) 前端用到了ajax AJAX即"Asynchronous Javascript...

    JQuery In Action

     它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    javascript之bind使用介绍

    为了搞清这个陌生又熟悉的bind,google一下,发现javascript1.8.5版本中原生实现了此方法,目前IE9+,ff4+,chrome7+支持此方法,opera和safari不支持(MDN上的说明)。 bind的作用和apply,call类似都是改变函数的...

    jQuery-1.3.js已压缩

     它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    jQuery-1.3.js未压缩

     它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    jQuery API (中英文对照版)

     它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    jquery 资料合集 实例

     它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理...

    jquery插件使用方法大全

    它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX...

    javascript下一种表单元素获取方法存在的问题

    测试环境 浏览器: IE6+, FF 3.5.5, Opera 10, Chrome 4.0.249, Safari 4.0.3 二. 例子 代码如下: &lt;form name=”test-form” action=”” method=””&gt; &lt;input type=”checkbox” name=”kk”&gt; &lt;form...

Global site tag (gtag.js) - Google Analytics