时间:2021-05-19
文件下载的方式
案例实操
超链接下载
当我们在 HTML 或 JSP 页面中使用标签时,原意是希望能够进行跳转,但当超链接遇到浏览器不识别的动态网页时则会自动下载。如果浏览器遇到能够直接显示的资源,浏览器就会默认显示出来,比如 txt,png,jpg 等。当然我们也可以通过 download 属性规定浏览器进行下载。但有些浏览器并不支持。
默认下载
<a href="upload/abc.zip" rel="external nofollow" >超链接下载</a>
指定 download 属性下载
<a href="upload/abc.txt" rel="external nofollow" download="abcdef.txt">超链接下载</a>
这里,download 也可以不写任何信息,会自动使用默认文件名。这样当用户打开浏览器点击链接的时候就会直接下载文件。
后台实现下载
Step1:需要通过 HttpServletResponse.setContentType 方法设置 Content-type 头字段的值,这样浏览器才能够使用某种方式或激活某个程序来处理相应 MIME 类型的数据,例 如 ”application/octet-stream” 或 ”application/x-msdownload” 等
Step2:需要通过 HttpServletResponse.setHeader 方法设置 Content-Disposition 头的值为”attachment;filename=文件名”,filename提供了文件下载时的一个默认文件名
Step3:读取下载文件,调用 HttpServletResponse.getOutputStream 方法返回的OutputStream对象来向客户端写入附件内容。
public class DownLoadServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置请求编码 request.setCharacterEncoding("UTF-8"); // 接受参数,得到需要被下载的文件的名称 String fileName = request.getParameter("fileName"); // 判断名字名是否为空 if(fileName == null || "".equals(fileName)){ // 提示 System.out.println("文件名不能为空"); return; } // 获取文件存放的真实路径 String path = request.getServletContext().getRealPath("/" + fileName); // 通过文件路径和文件名得到file对象 File file = new File(path); // 判断是否存在,并且是一个标准文件 if (file.exists() && file.isFile()){ // 设置相应类型 application/octet-stream response.setContentType("application/x-msdownload"); // 设置头信息 response.setHeader("Content-Disposition", "attachment;filename=" + fileName); // 通过file对象得到输入流 FileInputStream in = new FileInputStream(file); // 得到输出流 ServletOutputStream out = response.getOutputStream(); byte[] car = new byte[1024]; int len = 0; while((len = in.read(car)) != -1){ out.write(car,0,len); } // 关闭流 in.close(); out.close(); } else { System.out.println("文件路径不正确!"); } }}扩展~HTML表单编码
HTML表单编码
enctype属性指定浏览器如何编码数据并将其呈现给服务器。
此属性有三个允许值。
application/x-/form"> <input name="fave" /> <input name="name" /> <button>Submit Vote</button> </form></body></html>
application/x-
每个数据项都放在一行上,不会对特殊字符进行编码。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Web应用程序开发中,文件上传与下载功能是非常常用的功能,下面通过本文给大家介绍JavaWeb实现文件上传与下载实例详解。对于文件上传,浏览器在上传的过程中是
如何在javaweb上使用网上下载的网页模板?html5模板怎么用?在幻灯片母版中插入布局是什么意思?下面就和小编一起来看看吧! 如何在javaweb上使
本文实例为大家分享了javaweb文件下载的具体实现代码,供大家参考,具体内容如下文件上传示例注意:jsp页面编码为"UTF-8"文件上传的必要条件1.form
本文将介绍如何在JavaWeb工程中集成YMP框架,操作过程基于IntelliJIDEA做为开发环境,工程结构采用Maven构建:IntelliJIDEA下载地
本文实例为大家分享了javaweb文件打包批量下载,供大家参考,具体内容如下//批量下载未批改作业@RequestMapping(value="/downloa