前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >下载文件

下载文件

作者头像
星哥玩云
发布于 2022-09-14 13:14:09
发布于 2022-09-14 13:14:09
1K00
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

1、下载概述

下载就是向客户端响应字节数据! 原来我们响应的都是html的字符数据! 把一个文件变成字节数组,使用response.getOutputStream()来各应给浏览器!!!

2、下载的要求

两个头一个流!

Content-Type:

你传递给客户端的文件是什么MIME类型,例如:image/pjpeg

通过文件名称调用ServletContext的getMimeType()方法,得到MIME类型!

Content-Disposition:

它的默认值为inline,表示在浏览器窗口中打开!attachment;filename=xxx

在filename=后面跟随的是显示在下载框中的文件名称! 流:要下载的文件数据!自己new一个输入流即可!该输入流指向的就是要下载的文件!

3、下载演示

download.jsp

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <body>
	<a href="<c:url value='/DownloadServlet'/>">
		下载链接
	</a>
  </body>

DownloadServlet.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Download1Servlet extends HttpServlet {
	@Override
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		/*
		 * 两个头一个流
		 * 1. Content-Type
		 * 2. Content-Disposition
		 * 3. 流:下载文件的数据
		 */
		String filename = "F:/a.mp3";
		String contentType = this.getServletContext()
				.getMimeType(filename);//通过文件名称获取MIME类型
		String contentDisposition = "attachment;filename=" + a.mp3;
		// 一个流
		FileInputStream input = new FileInputStream(filename);
		
		//设置头
		resp.setHeader("Content-Type", contentType);
		resp.setHeader("Content-Disposition", contentDisposition);
		
		// 获取绑定了响应端的流
		ServletOutputStream output = resp.getOutputStream();
		
		IOUtils.copy(input, output);//把输入流中的数据写入到输出流中。
		
		input.close();
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
14-下载案例
下载案例 HTML文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</ti
Ywrby
2022/10/27
1800
Java-Response实现下载文件和验证码
在创建 servlet 时会覆盖 service() 方法,或 doGet()/doPost() ,这些方法都有两个参数,一个为代表请求的 request 和代表响应的 response 。 service 方法中的 response 的类型是 ServletResponse ,而 doGet/doPost 方法的 response 的类型是 HttpServletResponse,HttpServletResponse 是ServletResponse的子接口,功能和方法更加强大。
白衣少年
2022/12/26
4820
Java-Response实现下载文件和验证码
java 如何实现大文件上传下载(传输)各种格式「建议收藏」
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。
全栈程序员站长
2022/09/06
2.7K0
java 如何实现大文件上传下载(传输)各种格式「建议收藏」
文件上传与下载
文件上传:把本地电脑的文件上传带到服务器端(服务器也需要安装到本地硬盘) 文件上传也是通过表单传递数据的,对表单有了两个要求: [1].表单必须有file输入项: [2].表单的提交方式必须是post,enctype属性必须是multipart/form-data 第一种情况: 没有设置enctype属性值,(它的默认值:application/x-www-form-urlencoded)提交的参数:
别团等shy哥发育
2023/02/27
6920
SpringBoot集成easyExcel实现按模板导出
官方文档: EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel
一缕82年的清风
2022/07/28
4K0
SpringBoot集成easyExcel实现按模板导出
Java学习之Response篇
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119940.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/13
2670
E015Web学习笔记-Request和Respons(三)
如果超链接指向的资源可以被浏览器解析,则会展示在浏览器里面,否则弹出下载框,询问下载;
訾博ZiBo
2025/01/06
430
E015Web学习笔记-Request和Respons(三)
文件下载实现
实现文件下载步骤 1.获取要下载的文件名 2.读取要下载的文件内容 3.把下载的文件内容返回给客户 4.在回传前,通过响应头告诉客户端返回的数据类型 5.通过响应头告诉客户端收到的数据是要下载的 具体实现 导入 commons-io-1.4.jar包 编写Servlet程序 public class FileUpload extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServl
切图仔
2022/09/14
7120
ServletContext对象使用和文件下载案例
* 两种方法获取servletContext对象 * 获取MIME类型 * 设置域对象:共享数据
不愿意做鱼的小鲸鱼
2022/09/24
4080
ServletContext对象使用和文件下载案例
JavaWeb上传和下载原理及实现
通过观察发现这个的请求体就发生了变化。这种请求体被称之为多部件请求体。 什么是多部件请求体:就是把每一个表单项分割为一个部件。 以请求头的content-type的boundary后面的一串随机字符串作为分割标识 普通表单项:
秋白
2019/02/21
1.3K0
JavaWeb上传和下载原理及实现
Java文件上传下载实训
文件上传概述 1 文件上传的作用 例如网络硬盘!就是用来上传下载文件的。 在智联招聘上填写一个完整的简历还需要上传照片呢。 2 文件上传对页面的要求 上传文件的要求比较多,需要记一下: 1. 必须使用表单,而不能是超链接; 2. 表单的method必须是POST,而不能是GET; 3. 表单的enctype必须是multipart/form-data; 4. 在表单中添加file表单字段,即<input type=”file”…/> <form action="${pageContext.request.c
Java帮帮
2018/03/19
1.7K1
Java文件上传下载实训
文件下载java实现代码
2. 注意getServletContext().getMimeType(fileName),读取文件类型
大师级码师
2021/09/19
5580
JavaWeb——ServletContext对象的使用及文件下载案例实战
ServletContext代表整个web应用,可以和程序的容器(服务器)来通信,功能如下:
Winter_world
2020/09/25
5540
JavaWeb——ServletContext对象的使用及文件下载案例实战
Java Web Servlet (Part D)- File Upload &amp; Download
文件上传和下载是非常常用的功能,很多系统中都会有文件上传和下载,比如附件上传下载,用户头像上传等等
RiemannHypothesis
2022/09/26
4750
Java Web Servlet (Part D)- File Upload &amp; Download
文件的上传和下载
文件的上传和下载,是非常常见的功能,在很多的系统中,或者软件中都经常使用文件的上传和下载。 比如:QQ头像,就使用了上传 邮箱中也有附件的上传和下载的功能
技术交流
2022/11/18
1.3K0
文件的上传和下载
jsb和servlet文件下载步骤
package com.example.demo3; import org.apache.commons.io.IOUtils; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Ht
一个风轻云淡
2022/11/13
3240
ajax方式下载文件
在web项目中需要下载文件,由于传递的参数比较多(通过参数在服务器端动态下载指定文件),所以希望使用post方式传递参数。 通常,在web前端需要下载文件,都是通过指定<a>标签的href属性,访问服务器端url即可下载并保存文件到本地。 但是这种方式使用的是HTTP GET方法,参数只能通过URL参数方式传递,无法使用POST方式传递参数。 于是,想到使用ajax方式下载文件。
编程随笔
2019/09/11
3.4K0
ajax方式下载文件
HttpServletResponse
web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象、代表响应的一个 HttpServletResponse对象;
Albert_xiong
2021/06/21
5540
HttpServletResponse
Java学习笔记-全栈-web开发-12-文件上传和下载
enctype作用:告知服务器请求正文的MIME类型。(请求消息头:与Content-Type作用是一致的)
devi
2021/08/18
3520
java学习与应用(4.4)--Tomcat、servlet等
常用的web服务器软件:webLogic(oracle),webSphere(IBM),JBOSS(JBOSS公司)(以上三种支持所有JavaEE规范,企业版共13项规范),Tomcat(Apache基金,支持少量JavaEE规范) Tomcat:下载,解压使用。其中webapps存放网页,work存放运行数据,bin存放执行文件(shutdown.bat可关闭)。没有配置JAVA_HOME可能不能启动startup.bat。logs中存放日志信息记录一些错误等。netstat -ano查看端口使用的PID。conf配置目录的server.xml定义了tomcat的端口使用。 将代码打包为war包,放置到webapps下,会自动解压缩,和自动删除。server.xml的host标签下,定义Context自闭和标签中,定义docBase项目路径和path虚拟目录的属性便于访问。 常用的热部署并防止修改错误server.xml内容:方式为:conf下Catania下localhost下创建任意名称的xml文件,写入Context标签和属性,替换server.xml中的路径部署。 ROOT为项目根目录,WEB_INF为动态项目目录(web.xml为核心配置文件,classes目录存放字节码,lib存放jar包),其他为静态目录文件。 run->configuration ->Tomcat Server ->local->Application server中将tomcat集成到idea中。Java Enerprise -> Web Application,create server.xml勾选。等等配置。 idea直接修改可以使用热部署,不用重启服务器,进行代码调试,文件创建。idea也可以修改虚拟路径,方便使用。
嘘、小点声
2020/02/23
4380
相关推荐
14-下载案例
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文