`
E路之吕
  • 浏览: 15792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSF 文件下载

阅读更多
													<h:commandLink actionListener="#{referenceGuideCtrller.download}" value="Download" >
														<f:param name="fileLink" value="#{refFile.filePath}"></f:param>
													</h:commandLink>

 

    public void download() {    
    	try {      
    		FacesContext fc = FacesContext.getCurrentInstance();
    		String fileName = FacesContextUtil.getRequest().getParameter("fileLink");
    		String filePath = FacesContextUtil.getFileUploadPath() + fileName;
    		logger.debug("file path:" + filePath);					//filePath:/mnt/vishuo-data/reference/test.txt      
    		ByteArrayOutputStream baos= downloadFile(filePath);      
    		HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse();      
    		response.reset(); 
    		response.setHeader("Content-disposition", "attachment; filename=" + fileName.substring(fileName.lastIndexOf("/")+1)); //不是内嵌显示(attachment),而是作为附件下载   
//	    	response.setHeader("Content-disposition", "inline; filename=" + fileName.substring(fileName.lastIndexOf("/")+1)); //内嵌显示(inline)   
    		response.setContentType("application/x-download");
    		response.setContentLength(baos.size()); 
    		ServletOutputStream sos = response.getOutputStream();      
    		baos.writeTo(sos);      
    		baos.close();      
    		sos.flush();  
    		sos.close();
    		FacesContext.getCurrentInstance().responseComplete();
    	} catch (IOException ex) { 
    		logger.debug(ex);    
    	}    
    }
    
    public ByteArrayOutputStream downloadFile(String fileName) throws IOException {    
    	FileInputStream fis=new FileInputStream(fileName);    
    	BufferedInputStream bis=new BufferedInputStream(fis);    
    	ByteArrayOutputStream baos=new ByteArrayOutputStream();    
    	BufferedOutputStream bos=new BufferedOutputStream(baos);        
    	int i;    
    	while((i=bis.read())!=-1) {      
    		bos.write(i);   
    	}    
    	bos.flush();  
    	bis.close();    
    	return baos;  
    } 

 

 

 

分享到:
评论

相关推荐

    JSF文件下载实现

    总之,JSF文件下载功能的实现涉及到JSF上下文、Servlet上下文、HTTP响应头设置、文件流处理等多个关键环节。理解并熟练掌握这些知识点对于开发Web应用程序,特别是处理文件操作的场景非常重要。

    JSF文件上传下载

    以上就是JSF文件上传和下载的基本实现。为了确保安全性和性能,还需要考虑错误处理、文件大小限制、临时文件管理以及用户权限控制等细节。同时,现代的Web开发中,还可能结合使用CDN(内容分发网络)和云存储服务来...

    jsf(jar文件下载)

    jsf jar文件 下载 jsf开发 jsf(jar文件下载) jsf-api.jar

    jsf 文档 jsf

    jsf 文档 jsf 文档 jsf 文档 jsf 文档

    jsf 文件上传和下载

    在JavaServer Faces (JSF)框架中,文件上传和下载是常见的功能,广泛应用于Web应用程序中,例如用户需要上传个人照片、下载文档等。本文将详细介绍如何在JSF环境中实现文件上传和下载,并提供一个可直接在Eclipse下...

    JSF帮助文档

    但是,根据上下文,我们可以推断文档可能包含有关JSF的详细教程或参考资料,比如如何配置JSF环境、创建JSF组件、处理用户事件以及调试JSF应用程序等内容。 总的来说,JSF是一个强大的工具,它为Java开发者提供了...

    JSF上传 JSF大文件上传 JSF上传代码 JSF上传源代码

    JSF(JavaServer Faces)是Java...对于希望学习或改进自己JSF文件上传功能的开发者来说,这是一个宝贵的资源。通过深入研究源代码,可以了解到如何处理大文件、如何优化上传性能以及如何确保上传过程的稳定性和安全性。

    JSF API帮助文档

    **导航** 在JSF中是通过配置文件(faces-config.xml)或编程方式实现的,决定了根据用户的操作如何重定向到不同的页面。 **JSF API** 还提供了许多其他功能,如国际化支持、错误处理和事件传播等。这个帮助文档会...

    JSF 上传文件例子

    1. 开发自定义组件:这是解决JSF文件上传问题的一种方法,通过编写自定义组件,可以扩展JSF的功能以支持文件上传。这通常涉及到解析multipart/form-data请求,处理文件流,并将其与后台的管理Bean进行交互。 2. ...

    jsf标签官方帮助文档

    1. **JSF组件体系结构**:文档会详细介绍JSF组件的层次结构,解释组件如何组成界面,并展示如何将它们组合在一起创建复杂的表单和布局。 2. **JSF生命周期**:JSF应用遵循一系列阶段,从初始化到渲染响应。理解每个...

    jsf1.2 jar包下载

    1. **jsf-api.jar**:这个JAR文件包含了JSF API,即JSF规范定义的接口和类。开发者在编写JSF应用程序时,主要会引用这个API,它定义了诸如FacesContext、UIComponent、ValueExpression等核心组件和接口。通过这些API...

    jsf 中文帮助文档

    JSF的中文帮助文档是一个非常宝贵的资源,对于学习和理解这个框架的开发者来说,无论是初学者还是经验丰富的专业人士,都是不可或缺的参考资料。 文档通常分为PDF和CHM两种格式,每种都有其独特的优点。**PDF...

    JSF 很全面的帮助文档

    这篇很全面的帮助文档旨在为开发者提供JSF的详尽指南,帮助他们掌握JSF的核心概念、组件、生命周期以及最佳实践。 1. JSF简介: JSF是一个MVC(模型-视图-控制器)架构的框架,简化了创建基于Java的动态Web页面的...

    JSF开发必备JAR

    (难道是我下载的JSF reference implementation 版本的原因?) &lt;br&gt;无论如何,最后我还是找到了列表中的所有jar。 &lt;br&gt; * jsf-impl.jar * jsf-api.jar * commons-digester.jar * ...

    (分两个包,请下载全)lib文件,jar包,jsf+spring

    【标题】"lib文件,jar包,jsf+spring"涉及的是Java开发中的关键...开发者需要下载完整的两个包,并将其中的库文件添加到项目环境中,然后根据项目需求配置JSF和Spring的集成,以便于开发和管理高效、模块化的Web应用。

    JSF包,jsf包,JSF包,jsf包

    在JSF应用中,`.jar` 文件通常包含JSF实现库、组件库或自定义组件的实现。开发者可以将这些库导入到项目中,以便利用JSF的功能。 **使用JSF进行开发**: 1. **环境配置**:首先需要在项目中引入JSF的库,如Mojarra...

    core jsf 1.2 jsf 核心

    **JSF 1.2核心详解** JavaServer Faces (JSF) 是Java平台上的一个用于构建用户界面的组件模型框架,特别适用于Web...而`core jsf.chm`文件很可能是关于JSF 1.2的官方文档或教程集合,可以帮助深入学习和掌握这些概念。

    jsf api文档

    这个CHM文件包含了JSF的核心API文档,是开发者在编写JSF应用时的重要参考。CHM(Compiled HTML Help)是一种微软的文件格式,用于存储和查看帮助信息。在`JSF_API.CHM`中,你可以找到关于JSF接口、类和方法的详细...

    JSF概述 文档

    JSF概述 文档

Global site tag (gtag.js) - Google Analytics