SpringMVC学习-6
文件下载
访问资源时响应如果没有设置 Content-Disposition,浏览器默认按照 inline 值进行处理。inline 能显示就显示,不能显示就下载.
只需要修改相应头中 Context-Disposition=”attachment;filename=文件名”
attachment 下载,以附件形式下载.
filename=值就是下载时显示的下载文件名
1
res.setHeader("Content-Disposition", "attachment;filename=文件名");
通过apache提供的jar包来实现
实现步骤
导入jar包
在 jsp 中添加超链接,设置要下载文件。在 springmvc 中放行静态资源files文件夹
编写控制器方法
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" |
1 | package com.kylin.controller; |
文件上传
基于 apache 的 commons-fileupload.jar 完成文件上传.
MultipartResovler 作用:
- 把客户端上传的文件流转换成 MutipartFile 封装类.
- 通过 MutipartFile 封装类获取到文件流
表单数据类型分类
- 在form标签中的 enctype 属性控制表单类型
- 默认值 application/x-www-form-urlencoded,普通表单数据.(少量文字信息)
- text/plain 大文字量时使用的类型.邮件,论文
- multipart/form-data 表单中包含二进制文件内容.
实现步骤
导入 springmvc 包和 apache 文件上传 commons-fileupload 和commons-io 两个 jar
编写 JSP 页面
配置 springmvc.xm
编写控制器类
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
1 |
|
1 | package com.kylin.controller; |
总结
- 利用了apache提供的两个jar包可以非常方便的使用其工具类进行文件的上传和下载。
- 本章我写的不是很详细,如果有疑问可以参考前面JavaWeb-文件上传和JavaWeb-文件下载。apache提供的重点是对request.getInpustream()解析-FIleUpload。,其次是其工具类,不使用也可以按照原先IO流的对文件进行读写。我们所使用这两个jar包的根本原因是对requset.getInputStream的解析。
- SpringMVC中我们使用的是MultipartResovler解析器,其所依赖的也是apache的这两个jar包。
- 我们可以使用异常解析器对发生超出文件上传最大限制异常进行处理,当然也不仅仅使用于处理文件上传的异常,适用的是所遇到的各种异常对其处理。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kylin!
评论