@Controller
@Controller用于标记在一个类上,使用它标记的类就是一个SpringMvc Controller对象,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。
@Controller只是定义了一个控制器类,而使用@RequestMapping注解的方法才是处理请求的处理器。
@Controller标记在一个类上还不能真正意义上说它就是SpringMvc的控制器,应为这个时候Spring还不认识它,这个时候需要把这个控制器交给Spring来管理。有两种方式可以管理:
允许访问的方法Request Get Post
@RequestMapping("/file")
@GetMapping("/any")
@PostMapping("/upload")
@RequestParam("file") 请求参数
redirectAttributes.addAttributie("prama",value); 重定向之后追加参数
redirectAttributes.addAttributie("prama1",value1);
redirectAttributes.addAttributie("prama2",value2);
return:"redirect:/path/list"
以上重定向的方法等同于 return:"redirect:/path/list?prama1=value1&prama2=value2 "
MultipartFile
MultipartFile是spring类型,代表HTML中form data方式上传的文件,包含二进制数据+文件名称
文件上传判断
图片上传业务流程:
-->用户上传图片-->获取文件后缀-->创建相同文件后缀的临时文件
-->将文件流写入临时文件
-->(判断文件后缀是否在白名单)-->(判断文件MIME是否在黑白名单)
-->isImage()判断文件内容是否是图片
-->成功则保留临时文件,失败直接删除临时文件