1.文件上传

1.1预备工作,需要两个jar包(Fileupload)

jar包下载路径:

[点击下载https://github.com/suyirulan/putao/tree/master/fileupload_jar]

1.2上传文件的jsp页面如下,注意上传文件时表单form标签的属性method="post" enctype="multipart/form-data"是必须的,并且文件的name=" "也是必须的

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html>
4 <html>
5 <head>
6 <meta charset="UTF-8">
7 <title>上传文件</title>
8 </head>
9 <body>
10 <form action="addStudent" method="post" enctype="multipart/form-data">
11 姓名:<input type="text" name="name"/><br>
12 年龄:<input type="text" name="age"/><br>
13 头像:<input type="file" name="headphoto"/><br>
14 <input type="submit" value="上传"/>
15 </form>
16 </body>
17 </html>

1.3在springmvc配置文件中上传解析器

其中value="99999999"为限制上传文件的最大字节(字节计算:1M=1024k=1024*1024=1048576字节)

1 <!-- 文件上传解析器 -->
2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
3 <property name="maxUploadSize" value="99999999"></property>
4 </bean>

1.4上传文件的Controller代码

 1 @Controller
2 public class StudentController {
3
4 @RequestMapping("addStudent")
5 public String addStudent(Student stu,HttpServletRequest request,MultipartFile headphoto,Model model) {
6 //1.获取上传文件真实保存路径
7 String path = request.getServletContext().getRealPath("/headphoto");
8 //2.创建一个文件对象
9 File file=new File(path);
10 //若没有此文件则创建
11 if(!file.exists()) {
12 file.mkdirs();
13 }
14 //3.获取文件名
15 String filename=System.currentTimeMillis()+headphoto.getOriginalFilename();
16
17 stu.setPhoto("headphoto/"+filename);
18
19 File targetFile =new File(path+"/"+filename);
20
21 try {
22 FileUtils.writeByteArrayToFile(targetFile, headphoto.getBytes());
23 } catch (IOException e) {
24 // TODO Auto-generated catch block
25 e.printStackTrace();
26 }
27
28 model.addAttribute("stu",stu);
29
30 return "index";
31 }
32 }

进行测试

上传成功

 2.拦截器(拦截的都是控制层地址,filter:页面地址请求都可以拦截)

2.1创建一个类,实现接口Handlerinterceptor

2.2重写接口中的方法

 1 public class MyInterceptor implements HandlerInterceptor{
2
3 @Override
4 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
5 throws Exception {
6 // TODO Auto-generated method stub
7
8 }
9
10 @Override
11 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
12 throws Exception {
13 // TODO Auto-generated method stub
14
15 }
16
17 @Override
18 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
19 Object name = request.getSession().getAttribute("name");
20 if(name!=null) {
21 return true;
22 }else {
23 System.out.println("拦截器");
24 return false;
25 }
26 }
27
28 }

2.3把创建的类配置到SpringMVC文件中,其中<mvc:mapping path=" "/>为拦截的,<mvc:exclude-mapping path=" "/>为放行的

1 <!-- 拦截器 -->
2 <mvc:interceptors>
3 <mvc:interceptor>
4 <mvc:mapping path="/user/**"/>
5 <mvc:exclude-mapping path="/user/login1"/>
6 <mvc:exclude-mapping path="/user/denglu"/>
7 <bean class="com.zhiyou100.zhl.interceptor.MyInterceptor"></bean>
8 </mvc:interceptor>
9 </mvc:interceptors>

Fileupload

SpringMVC学习四(文件上传/拦截器)的更多相关文章

  1. struts文件上传拦截器分析

    struts有默认的文件拦截器,一般配置maximumSize就可以了. 知道原理,我们可以写一个类继承它,实现自己的配置上传文件大小的方式.   然后细究页面上传文件的时候,发现了一些问题. act ...

  2. springMVC整理04--文件上传 & 拦截器 & 异常处理

    1.  文件上传 SpringMVC 的文件上传非常简便,首先导入文件上传依赖的 jar: <!-- 文件上传所依赖的 jar 包 --> <dependency> <g ...

  3. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  4. SpringMvc(四)- 下载,上传,拦截器

    1.图片下载 图片下载:将服务器端的文件以流的形式写到客户端,通过浏览器保存到本地,实现下载: 1.1 图片下载步骤 1.通过session获取上下文对象(session.getServletCont ...

  5. struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题

    <interceptor-ref name="fileUpload"> <param name="allowedTypes">image ...

  6. struts文件上传拦截器maximumSize设置文件大小不起作用

    <interceptor-ref name="fileUpload">                <param name="allowedTypes ...

  7. Struts学习之文件上传

    * 单文件上传:        * 在动作类action中声明相关属性:            * 在动作类action中,要声明与页面中表单name属性同名的属性,同名的属性的类型是File类型:  ...

  8. (转)SpringMVC学习(九)——SpringMVC中实现文件上传

    http://blog.csdn.net/yerenyuan_pku/article/details/72511975 这一篇博文主要来总结下SpringMVC中实现文件上传的步骤.但这里我只讲单个文 ...

  9. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

  10. 转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

随机推荐

  1. 一款超酷、功能强大的一体化网站测试工具:Web-Check

    今天给大家一款网站一体化测试工具:Web-Check! Web-Check 是一款功能强大的一体化工具,用于发现网站/主机的相关信息.用于检查网页的工具,用于确保网页的正确性和可访问性.它可以帮助开发 ...

  2. 英语文档之vivado界面

    vivado英文界面 一.界面内容 图中就是vivado常用的界面. 二.常用窗口 首先是左侧的project manager:IP INTEGRATOR(IP 集成器),simulation(仿真) ...

  3. 攻防世界 Replace Reverse二星题

    解题过程中,虽然解出来了,但是磕磕绊绊犯了一些错误,记录一下 分析过程 PE查壳 有一个upx壳,最下面给了脱壳提示: upx.exe -d Replace.exe 脱壳结束,丢到IDA里,SHIF+ ...

  4. #KMP,容斥,dp#洛谷 5770 [JSOI2016] 无界单词

    题目传送门 分析 显然如果存在长度大于一半的border那么必然存在小于一半的 border,所以容斥一下, 设 \(dp[i]\) 表示长度为 \(i\) 的不存在公共前后缀的字符串个数,那么 \( ...

  5. #容斥,广搜#nssl 1458 HR的疑惑 nssl 1460 逛机房

    nssl 1458 HR的疑惑 题目 求\([1\sim n]\)中有多少个正整数\(x\)满足 \[\sqrt[y]{x}\in N^{+},y>1 \] 其中\(n\leq 10^{18}\ ...

  6. #斐波那契#洛谷 3424 [POI2005] SUM-Fibonacci Sums

    题目 已知\(x,y\)的斐波那契表示,求\(x+y\)的斐波那契表示 分析 显然得到两条性质: \(f_{i+1}=f_{i-1}+f_i\) \(2f_i=f_{i+1}+f_{i-2}\) 那么 ...

  7. 直播预告丨OpenHarmony标准系统多媒体子系统之音频解读

    今晚19点,OpenHarmony开源开发者成长计划知识赋能第五期"掌握OpenHarmony多媒体的框架原理"的第四节直播课,即将开播! 深开鸿资深技术专家苑春鸽老师,将在Ope ...

  8. Pandas选择与索引

    Series和DataFrame对象与Numpy数组和标准Python字典的数据索引和选择模式一样. 字典形式选择和索引 Series In [1]: import pandas as pd In [ ...

  9. PDF库 libharu 简单操作

    libharu官网:http://libharu.org/ 直接下载下来编译就可以使用了(*:我下载的版本是:libharu-libharu-v2.4.3-0-g8dbcfe4.tar)   一.编译 ...

  10. HDC2021技术分论坛:分布式软时钟有多重要?

    作者:lishijun,HarmonyOS解决方案首席技术专家&软总线首席架构师 分布式软总线是HarmonyOS的关键根技术之一,也是众多开发者们非常关注的一项技术.通过分布式软总线,可以将 ...