`
roway
  • 浏览: 50639 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

使用servlet下载文件

 
阅读更多
package upload_download.servlet;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import upload_download.dao.UploadDownloadDAO;
import upload_download.vo.UploadDownload;

public class UploadDownloadDownServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		// 获取id
		String id = request.getParameter("id");

		UploadDownload uploadDownload = UploadDownloadDAO.findOneById(id);
		
		//UploadDownloadDAO.downloadTimesAdd(id);

		this.glsEnclosureDownload(request, response, uploadDownload);
	}

	/**
	 * 下载文件。
	 */
	public void glsEnclosureDownload(HttpServletRequest request,
			HttpServletResponse response, UploadDownload uploadDownload)
			throws ServletException, IOException {

		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

		outputStream.write(uploadDownload.getFile_data());

		// 文件名称
		String filename = uploadDownload.getFile_name().substring(0,
				uploadDownload.getFile_name().lastIndexOf("."));
		// 文件类型
		String file_type = uploadDownload.getFile_name().substring(
				uploadDownload.getFile_name().lastIndexOf("."));

		response
				.addHeader("Content-Disposition", "attachment; filename="
						+ new String(filename.getBytes("gbk"), "iso8859-1")
						+ file_type);
		// response.setHeader("Content-Disposition", "inline; filename=" + new
		// String(rewardPunish.getFile_name().getBytes("gbk"),"iso8859-1"));
		response.setContentType("application/octet-stream");
		response.setContentLength(outputStream.size());
		ServletOutputStream out = response.getOutputStream();
		outputStream.writeTo(out);
		out.flush();
		out.close();
		UploadDownloadDAO.downloadTimesAdd(uploadDownload.getId()+"");
	}

}


分享到:
评论

相关推荐

    使用Servlet实现文件的上传与下载

    本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,这对于任何Web应用程序来说都是至关重要的。 首先,我们来了解一下Servlet的基本概念。Servlet是Java编程语言中一个用于扩展服务器功能的接口,主要应用...

    servlet文件下载项目

    总结一下,这个"Servlet文件下载项目"展示了如何使用Servlet技术实现一个简单的文件下载服务。通过理解Servlet的工作原理、HTTP响应头的设置以及Java I/O流的使用,我们可以构建出更复杂、更安全的文件下载系统。这...

    servlet 文件上传下载例子

    在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...

    java servlet实现文件下载

    本示例中,我们将探讨如何使用Java Servlet来实现文件的下载功能。 首先,理解HTTP协议是至关重要的,因为它定义了客户端(浏览器)与服务器之间的通信方式。在文件下载场景中,服务器需要响应一个HTTP请求,该请求...

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

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

    ajax+json+servlet下载

    结合JSON(JavaScript Object Notation)和Servlet,我们可以实现一个高效且用户友好的文件下载系统。以下是对这个"ajax+json+servlet下载"主题的详细解释。 首先,我们需要理解Ajax的核心原理。Ajax通过...

    使用Servlet实现文件的下载

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

    答Servlet下载文件的附件

    这篇博客"答Servlet下载文件的附件"可能涉及了如何利用Servlet来实现文件的下载功能,让我们深入探讨这个话题。 首先,我们需要了解Servlet生命周期中的service()方法。当一个HTTP请求到达服务器,Servlet容器(如...

    servlet下载文件

    ### Servlet下载文件知识点详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的小程序,主要用于处理HTTP请求并生成动态网页。Servlet是Java Web开发的基础技术之一,广泛应用于构建动态网站和Web...

    基于servlet的文件下载代码

    特别是在企业级应用中,用户经常需要下载诸如报告文档、数据备份等文件。Java Servlet作为一种强大的服务器端技术,可以很好地实现这一功能。本文将详细介绍一个基于Servlet的文件下载代码示例,并对其实现原理进行...

    jsp,servlet上传下载文件

    文件上传下载是 Web 应用中的一种常见需求,使用 jsp 页面和 servlet 实现文件上传下载是其中的一种解决方案。下面将详细介绍 jsp、servlet 文件上传下载技术。 文件上传下载原理 文件上传下载的原理是将客户端的...

    文件上传与下载servlet

    下面将详细介绍如何使用Servlet实现文件上传和下载的功能。 ### 文件上传 文件上传通常涉及到HTTP协议中的`multipart/form-data`编码类型,这是处理表单数据中包含文件的关键。Servlet 3.0及以上版本提供了更方便...

    servlet上传下载文件

    总结来说,"servlet上传下载文件"是一个使用Java Servlet实现的Web应用程序,允许用户上传文件至服务器,并能够从服务器下载这些文件。这个系统的核心在于Servlet的`doPost`或`doGet`方法,它们处理HTTP请求,读取或...

    用servlet写的文件上传及下载功能带进度条

    自己用servlet写的文件上传及下载功能带进度条 主要用到两个jar:commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar 内容介绍: com.fm.FileManagerService:一个servlet用来实现主要的文件上传下载逻辑的 ...

    servlet实现文件上传下载

    总结来说,实现Servlet文件上传下载需要理解Servlet生命周期、HTTP请求处理、多部分数据解析以及文件I/O操作。Apache Commons FileUpload库简化了这一过程,但理解其背后的原理对于解决可能出现的问题和优化性能至关...

    Servlet中文件上传和下载

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

    中文版Servlet帮助文档

    文档详细介绍了Servlet API的使用,涵盖了从基础概念到高级特性的全方位知识。 首先,Servlet是Java EE(现在称为Jakarta EE)的一部分,它是一个服务器端的Java接口,允许程序员编写能够处理HTTP请求的应用程序。...

    基于Servlet实现文件的上传与下载

    "基于Servlet实现文件的上传与下载"是一个常见的实战任务,它涵盖了网络编程、多线程和文件I/O等多个核心概念。这里我们将深入探讨如何利用Servlet来实现这两个功能。 首先,让我们了解Servlet的工作原理。Servlet...

    【Demo Project】ajaxSubmit+Servlet表单文件上传和下载

    【AjaxSubmit+Servlet实现表单文件上传与下载详解】 在Web开发中,文件上传和下载是常见的功能,尤其是在用户交互丰富的应用中。本项目【Demo Project】利用AjaxSubmit结合Servlet技术,提供了一种高效、异步的方式...

    javax.servlet-api-4.0.0-API文档-中文版.zip

    赠送jar包:javax.servlet-api-4.0.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

Global site tag (gtag.js) - Google Analytics