最近研究了文件现在代码如下:
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();
}
分享到:
相关推荐
在上面的代码中,我们使用了Response流将数据库数据导出到Excel文件中。该代码主要实现了以下几个步骤: 1. 首先,我们设置Response流的编码为GB2312,这是中国国家标准的编码方式。 2. 其次,我们追加了Content-...
这个实例将详细讲解如何利用文件流来实现文件的下载功能。首先,我们要理解Web API的基本原理,它是一个用于构建RESTful服务的框架,允许通过HTTP协议来传输数据,而文件下载正好可以通过HTTP响应进行。 在本例中,...
### Java Response 下载文件方法详解 在Web应用开发过程中,经常需要实现文件的上传与下载功能。其中,通过`java response`实现文件下载是常见需求之一。本文将深入解析如何利用Java中的`HttpServletResponse`对象...
在ASP.NET Web API中,通过文件流下载文件到本地是一个常见的功能需求,它涉及到网络通信、文件处理和HTTP协议等多个方面。在这个实例中,我们将深入探讨如何实现这一过程,以及涉及的关键技术和步骤。 首先,我们...
以下将详细讲解如何使用HttpServletResponse返回流进行文件下载。 一、设置响应类型与附件下载 在返回文件流前,我们需要设置响应头,确保浏览器知道我们正在发送一个可下载的文件。关键在于设置`Content-Type`和`...
在Web应用开发中,经常需要实现文件下载功能,比如用户可以下载系统中的报告、图片、文档等资源。使用Java流来处理文件下载是一种非常常见的技术手段。本文将详细介绍如何利用Java的流(Stream)技术实现文件的下载...
基于Java文件输入输出流实现文件上传下载功能 本文将详细介绍基于Java文件输入输出流实现文件上传下载功能的相关知识点,包括文件上传和下载的实现原理、Java文件输入输出流的基础操作、Servlet的使用等。 文件...
### 输入流输出流方式的文件上传下载 在Java Web开发中,经常需要处理文件的上传与下载功能。本文将深入探讨使用输入流(`InputStream`)与输出流(`OutputStream`)来实现文件的上传与下载的技术细节。这种方式...
本文将介绍四种使用 C# 实现文件下载的方法,分别是使用 TransmitFile、WriteFile、WriteFile 分块下载和流方式下载。这些方法可以满足不同的下载需求,以下是每种方法的详细介绍: 一、TransmitFile 实现下载 ...
2. 在HttpHandler中,打开要下载的文件流。 3. 使用Stopwatch记录时间,每次读取一定量的数据后,暂停一段时间以达到限速效果。 4. 将数据写入HttpResponse的OutputStream,直到文件流读取完毕。 接下来,我们讨论...
我们可以通过重写`doGet`或`doPost`方法,使用`response.getOutputStream()`创建一个输出流,然后通过这个流将文件内容传送到前端。 3. **HTTP响应**: 当前端(例如浏览器)发起一个下载请求时,服务器需要构造一...
二进制文件下载(spring+angularJs),正确完后曾业务需求,优化功能,实现前后端一致性,保证代码质量
(2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存 为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,...
在IT行业中,文件流的下载和上传是网络应用的基础功能之一,广泛应用于各种场景,如云存储、文件共享、Web服务等。本示例聚焦于Windows Forms(WinForm)应用程序结合Web服务(Webservice)实现文件的上传和下载。...
根据提供的文档标题、描述、标签以及部分内容,本文将详细介绍如何使用Spring框架中的`RestTemplate`进行文件上传、普通文件下载及大文件的流式下载。 ### 一、文件上传 在进行文件上传时,通常涉及到以下几个步骤...
其中一个常见的需求就是在保护原文件地址的同时,提供文件下载功能,这在很多场景下都非常有用,比如内部文档分享、敏感数据传输等。 #### 关键技术点详解 ##### ASP流输出技术 本示例代码主要通过ASP的流输出...
文件下载同样基于HTTP响应,服务器通过Response对象将文件内容以二进制流的形式发送回客户端。为了实现这一功能,我们需要设置合适的HTTP头信息,如Content-Type和Content-Disposition。以下是一个简单的文件下载...
使用`GetStreamAsync`方法获取文件的流,然后使用`FileStream`将数据写入本地文件。 ```csharp using (var response = await client.GetAsync(downloadUrl, HttpCompletionOption.ResponseHeadersRead)) using ...
PDF(Portable Document Format)是一种跨平台的文件格式,用于呈现文档,包括文本格式和图像,无论在哪种操作系统、硬件或软件环境中都能保持一致的显示效果。 在SpringBoot中,创建一个PDF下载接口通常涉及到以下...
在IT领域,特别是在Web开发中,“数据流形式下载”是指通过将文件作为数据流处理并发送到客户端的过程。这种方式通常用于浏览器环境中的文件下载操作,能够支持大文件传输,并且可以更好地控制下载过程。下面将详细...