`

Response 流下载文件

阅读更多

  最近研究了文件现在代码如下:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        String templateName = req.getParameter("templateName");//need download file name

        //server file address.
        StringBuffer urlBuffer = new StringBuffer();
        String  realPath = req.getSession().getServletContext().getRealPath("/");
        urlBuffer.append(realPath);
        urlBuffer.append("templates/");
        urlBuffer.append(templateName);       
        String url =urlBuffer.toString();

       
        File f = new File(url);
        String filename = f.getName();
        int length = 0;
        ServletOutputStream op = resp.getOutputStream();       
        resp.setContentLength((int) f.length());
       
        if (templateName.endsWith("xls")) {
            resp.setContentType("application/vnd.ms-excel");
        }else if (templateName.endsWith("xlsx")) {
            resp.setContentType("application/vnd.ms-excel");
        }else if (templateName.endsWith("pdf")) {
            resp.setContentType("application/pdf");
        }else if (templateName.endsWith("doc")) {
            resp.setContentType("application/msword");
        }else if (templateName.endsWith("docx")) {
            resp.setContentType("application/msword");
        }
        resp.setHeader("Content-Disposition", "attachment; filename*=\"utf-8''" + filename + "");
        resp.setHeader("Pragma", "No-cache");
        resp.setHeader("Cache-Control", "no-store");
        resp.setDateHeader("Expires", 0);
       
        byte[] bytes = new byte[1024];
        DataInputStream in = new DataInputStream(new FileInputStream(f));
        while ((in != null) && ((length = in.read(bytes)) != -1)) {
            op.write(bytes, 0, length);
        }
        op.close();
        resp.flushBuffer();
    }

0
0
分享到:
评论

相关推荐

    C#利用Response流将数据库数据导出成Excel

    在上面的代码中,我们使用了Response流将数据库数据导出到Excel文件中。该代码主要实现了以下几个步骤: 1. 首先,我们设置Response流的编码为GB2312,这是中国国家标准的编码方式。 2. 其次,我们追加了Content-...

    ASP.NET(C#) Web Api通过文件流下载文件的实例

    这个实例将详细讲解如何利用文件流来实现文件的下载功能。首先,我们要理解Web API的基本原理,它是一个用于构建RESTful服务的框架,允许通过HTTP协议来传输数据,而文件下载正好可以通过HTTP响应进行。 在本例中,...

    java response 下载文件方法

    ### Java Response 下载文件方法详解 在Web应用开发过程中,经常需要实现文件的上传与下载功能。其中,通过`java response`实现文件下载是常见需求之一。本文将深入解析如何利用Java中的`HttpServletResponse`对象...

    Web Api 通过文件流 下载文件到本地实例

    在ASP.NET Web API中,通过文件流下载文件到本地是一个常见的功能需求,它涉及到网络通信、文件处理和HTTP协议等多个方面。在这个实例中,我们将深入探讨如何实现这一过程,以及涉及的关键技术和步骤。 首先,我们...

    java httpServletResponse返回流进行 下载 - 姐呵呵博客专栏 - CSDN博客1

    以下将详细讲解如何使用HttpServletResponse返回流进行文件下载。 一、设置响应类型与附件下载 在返回文件流前,我们需要设置响应头,确保浏览器知道我们正在发送一个可下载的文件。关键在于设置`Content-Type`和`...

    java 使用流下载文件

    在Web应用开发中,经常需要实现文件下载功能,比如用户可以下载系统中的报告、图片、文档等资源。使用Java流来处理文件下载是一种非常常见的技术手段。本文将详细介绍如何利用Java的流(Stream)技术实现文件的下载...

    基于Java文件输入输出流实现文件上传下载功能

    基于Java文件输入输出流实现文件上传下载功能 本文将详细介绍基于Java文件输入输出流实现文件上传下载功能的相关知识点,包括文件上传和下载的实现原理、Java文件输入输出流的基础操作、Servlet的使用等。 文件...

    输入流输出流方式的文件上传下载

    ### 输入流输出流方式的文件上传下载 在Java Web开发中,经常需要处理文件的上传与下载功能。本文将深入探讨使用输入流(`InputStream`)与输出流(`OutputStream`)来实现文件的上传与下载的技术细节。这种方式...

    C# 四种实现文件下载

    本文将介绍四种使用 C# 实现文件下载的方法,分别是使用 TransmitFile、WriteFile、WriteFile 分块下载和流方式下载。这些方法可以满足不同的下载需求,以下是每种方法的详细介绍: 一、TransmitFile 实现下载 ...

    asp.net(C#)限速下载隐藏文件真实名称和地址下载的例子

    2. 在HttpHandler中,打开要下载的文件流。 3. 使用Stopwatch记录时间,每次读取一定量的数据后,暂停一段时间以达到限速效果。 4. 将数据写入HttpResponse的OutputStream,直到文件流读取完毕。 接下来,我们讨论...

    通过IO流把文件传到前端并下载.zip

    我们可以通过重写`doGet`或`doPost`方法,使用`response.getOutputStream()`创建一个输出流,然后通过这个流将文件内容传送到前端。 3. **HTTP响应**: 当前端(例如浏览器)发起一个下载请求时,服务器需要构造一...

    二进制流下载zip或单个文件(spring + angular Js).html

    二进制文件下载(spring+angularJs),正确完后曾业务需求,优化功能,实现前后端一致性,保证代码质量

    JSP response对象实现文件下载的两种方式

    (2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存 为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,...

    文件流的下载和上传

    在IT行业中,文件流的下载和上传是网络应用的基础功能之一,广泛应用于各种场景,如云存储、文件共享、Web服务等。本示例聚焦于Windows Forms(WinForm)应用程序结合Web服务(Webservice)实现文件的上传和下载。...

    精讲RestTemplate文件上传下载与大文件流式下载.docx

    根据提供的文档标题、描述、标签以及部分内容,本文将详细介绍如何使用Spring框架中的`RestTemplate`进行文件上传、普通文件下载及大文件的流式下载。 ### 一、文件上传 在进行文件上传时,通常涉及到以下几个步骤...

    ASP是用流输出文件下载 源码

    其中一个常见的需求就是在保护原文件地址的同时,提供文件下载功能,这在很多场景下都非常有用,比如内部文档分享、敏感数据传输等。 #### 关键技术点详解 ##### ASP流输出技术 本示例代码主要通过ASP的流输出...

    上传下载二进制流文件

    文件下载同样基于HTTP响应,服务器通过Response对象将文件内容以二进制流的形式发送回客户端。为了实现这一功能,我们需要设置合适的HTTP头信息,如Content-Type和Content-Disposition。以下是一个简单的文件下载...

    C# WPF 下载网络文件、流到指定目录,支持选择目标目录进行存储,可实时查看文件下载进度

    使用`GetStreamAsync`方法获取文件的流,然后使用`FileStream`将数据写入本地文件。 ```csharp using (var response = await client.GetAsync(downloadUrl, HttpCompletionOption.ResponseHeadersRead)) using ...

    pdf下载接口,输出流文件下载

    PDF(Portable Document Format)是一种跨平台的文件格式,用于呈现文档,包括文本格式和图像,无论在哪种操作系统、硬件或软件环境中都能保持一致的显示效果。 在SpringBoot中,创建一个PDF下载接口通常涉及到以下...

    数据流形式下载

    在IT领域,特别是在Web开发中,“数据流形式下载”是指通过将文件作为数据流处理并发送到客户端的过程。这种方式通常用于浏览器环境中的文件下载操作,能够支持大文件传输,并且可以更好地控制下载过程。下面将详细...

Global site tag (gtag.js) - Google Analytics