`
javaeeboy
  • 浏览: 12123 次
  • 性别: Icon_minigender_1
  • 来自: 汕头
社区版块
存档分类
最新评论

使用servlet技术来下载文件

阅读更多
要下载一个文件,那么就要知道这个文件mime类型,所以要先把你的系统中允许下载的mime类型放到xml文件中!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE SYSTEM>
<mime>
	<mime-mapping>
		<extension>abs</extension>
		<mime-type>audio/x-mpeg</mime-type>
	</mime-mapping>
	<mime-mapping>
		<extension>ai</extension>
		<mime-type>application/postscript</mime-type>
	</mime-mapping>
	<mime-mapping>
		<extension>aif</extension>
		<mime-type>audio/x-aiff</mime-type>
	</mime-mapping>
......

接下来就要根据文件的后缀名读取xml文件中的mime类型
我的操作是将所有的mime类型都放到java.util.Map中
package download;

import java.io.File;
import java.util.*;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class ReadMimeConfig {
	private static Map<String, String> mimeMap = new HashMap<String, String>();

	public ReadMimeConfig(){
		SAXReader saxReader = new SAXReader();
		//获取xml文件的路径,这是根据网络路径来获取的
		String path = getClass().getResource("/download/mime.xml").getFile();
		path = path.replaceAll("%20", " ");//格式化
		
		try {
			File file = new File(path);
			/*下面是dom4j操作*/
			Document document = saxReader.read(file);
			Element mime = document.getRootElement();
			Iterator<Element> i = mime.elementIterator();
			int j = 0;
			while (i.hasNext()) {
				Element mime_mapping = i.next();
				String extensionName = mime_mapping.elementText("extension");
				String mimeType = mime_mapping.elementText("mime-type");
				mimeMap.put(extensionName, mimeType);
				j++;
			}
			System.out.println(j+":::");
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
	
	public String getMimeType(String extensionName) {
		return mimeMap.get(extensionName);
	}
}


接下来就是在servlet中下载文件了
String mimeType = config.getMimeType(path.substring(path
						.lastIndexOf(".") + 1));//获取文件的mime类型
				/*下载提示框的设置*/
				response.setContentType(mimeType);
				response.setHeader("Content-Disposition", "attachment;filename=\""
						+ fileName + "\"");
				response.setHeader("Content-Type", mimeType);
				
				/*把文件转换为字节输出流,参数为文件输出流*/
				BufferedInputStream bis = new BufferedInputStream(
						new FileInputStream(path1));
				/*
				 * 输出流,输出的对象为响应的下载提示框
				 * 参数表示输出流的响应对象
				 */
				BufferedOutputStream bos = new BufferedOutputStream(response
						.getOutputStream());	
				byte[] contents = new byte[8192];	
				while (bis.read(contents) != -1) {
					bos.write(contents);
				}


以上代码是最主要的设置,因为根据不同的系统的下载情况而定!
如果想要本人自己制作的示例,请E-mail我 javaeeboy@qq.com 我发邮件给你!谢谢
如果有更好的操作方式希望不吝赐教,多多留言,谢谢
分享到:
评论

相关推荐

    servlet文件下载项目

    在这个"Servlet文件下载项目"中,我们利用Servlet技术来实现文件的下载功能。这是一个非常实用的功能,尤其对于那些需要向用户提供文件下载服务的网站或应用。 首先,我们需要了解Servlet的基本工作原理。Servlet是...

    jsp,servlet上传下载文件

    jsp、servlet 文件上传下载技术详解 文件上传下载是 Web 应用中的一种常见需求,...jsp、servlet 文件上传下载技术是 Web 应用中的一种常见解决方案,通过使用 jsp 页面和 servlet 实现文件上传下载,满足用户的需求。

    基于servlet的文件下载代码

    ### 基于Servlet的文件下载技术解析 #### 一、引言 在Web应用程序开发过程中,文件上传和下载是常见的需求之一。特别是在企业级应用中,用户经常需要下载诸如报告文档、数据备份等文件。Java Servlet作为一种强大...

    java jsp+servlet实现文件下载(而不是在网页中显示出文件内容) 迅雷下载功能.zip

    这个链接会指向一个`servlet`,由`servlet`来处理实际的文件读取和下载逻辑。 1. **创建Servlet**:首先,我们需要创建一个自定义的`servlet`,例如`FileDownloadServlet`。在`src`目录下的Java源代码文件中,我们...

    servlet上传下载文件

    Servlet技术广泛应用于文件上传和下载的功能实现,因为它们可以方便地与客户端交互并处理数据流。在本例中,我们将深入探讨如何使用Servlet来实现文件上传和下载功能。 首先,让我们了解文件上传的基本流程。当用户...

    文件上传与下载servlet

    在IT行业中,文件上传与下载是Web应用中常见的功能,特别是在企业级系统中,例如文档管理系统、在线教育平台等。Servlet作为Java Web开发中的一个重要组件,常被用来处理这些操作。下面将详细介绍如何使用Servlet...

    使用servlet实现简单用户登录

    在本文中,我们将深入探讨如何使用Servlet技术来实现一个简单的用户登录功能。Servlet是一种Java编程接口,用于扩展服务器的功能,特别是在Web应用中处理HTTP请求。在这个项目中,我们结合了Servlet与JSP(Java...

    Servlet技术入门教学

    以下是对Servlet技术的详细介绍: 1. **Servlet基本概念**: Servlet是一种Java类,它扩展了服务器的功能,主要用于接收和处理来自客户端(通常是Web浏览器)的请求,并生成相应的响应。它们在Web服务器中运行,与...

    servlet实现文件上传下载

    本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...

    北大青鸟accp7.0使用JSP/Servlet技术开发新闻发布系统课件+上级+课后作业答案

    "北大青鸟accp7.0使用JSP/Servlet技术开发新闻发布系统课件+上级+课后作业答案"这个标题表明这是一套由北大青鸟教育机构推出的accp7.0课程的教学资源,重点在于讲解如何利用JSP(JavaServer Pages)和Servlet技术来...

    使用Servlet实现文件的下载

    在这个场景中,"使用Servlet实现文件的下载"是一个常见的需求,特别是在构建动态网站时,用户可能需要下载服务器上的文件。以下是关于如何使用Servlet实现文件下载的详细步骤和知识点: 1. **创建Servlet**:首先,...

    Servlet3.1规范官方文档(中文版)

    总之,Servlet3.1规范官方文档(中文版)是学习Java Servlet技术不可或缺的参考资料,它不仅详细描述了Servlet技术的规范,还提供了学习和参考的标准。通过阅读此文档,开发者能够掌握如何在Java EE平台上构建Web...

    jsp+servlet实现大型文件下载

    本教程将深入讲解如何利用JSP和Servlet来实现大型文件的下载功能,这对于构建高效、稳定的Web应用至关重要。 一、Servlet简介 Servlet是Java平台上的一个标准接口,用于扩展服务器的功能。在Web开发中,Servlet通常...

    Servlet文件上传、下载及缩略图的生成

    总的来说,这个项目提供了一个全面的示例,演示了Servlet如何处理常见的文件操作,对于学习Java Web开发和Servlet技术的人来说非常有价值。通过深入研究和理解这个项目,你可以更好地掌握服务器端文件处理和图像处理...

    jsp+servlet文件下载及批量下载

    java实现jsp+servlet文件下载及批量下载,mvc分层技术

    Servlet实现多文件批量下载

    在本示例中,我们探讨的是如何使用Servlet来实现多文件的批量下载功能。批量下载通常涉及到将多个文件打包成一个压缩文件,然后提供给用户下载,这样可以极大地提高下载效率,尤其当用户需要下载大量小文件时。 ...

    JSP/servlet实现上传下载

    本知识点主要探讨如何使用JSP和Servlet来实现文件的上传与下载功能,这是Web应用中常见的需求。 首先,我们要理解JSP和Servlet的角色。JSP主要用于展示视图,而Servlet则处理业务逻辑和控制流程。在上传下载场景中...

    ajax+json+servlet下载

    Servlet接收到下载请求后,会准备文件的下载流,并设置合适的HTTP响应头,比如Content-Disposition来指定文件名,以及Content-Type来指明文件类型。然后,Servlet将文件内容写入响应流,前端接收到这个响应后,...

    Servlet中文件上传和下载

    本文将深入探讨如何在Servlet中实现文件的上传和下载功能,以及在页面上利用JSP和Javabean来实例化对象。 首先,文件上传是通过HTTP多部分请求(Multipart Request)来实现的。Servlet 3.0及以上版本提供了对这种...

    ACCP 6.0 S2-5-使用JSP/Servlet/Ajax技术开发新闻发布系统 PPT课件

    【ACCP 6.0 S2-5】课程主要涵盖了使用JSP(JavaServer Pages)、Servlet和Ajax技术来开发新闻发布的系统。这是一个典型的Web应用程序开发主题,旨在教授学员如何利用这些技术构建动态、交互式的网站。 JSP是Java...

Global site tag (gtag.js) - Google Analytics