springMVC 学习总结(三) 文件上传下载

一,文件上传

springMVC的文件上传是基于 commons-fileupload组件的文件上传,但进行了封装,简化了代码,

实现文件上传:

1.首先导入依赖:

  
      commons-io
      commons-io
      2.6
    

    
      commons-fileupload
      commons-fileupload
      1.3.3
    

2.设计上传表单,表单提交方式必须是post,entype属性必须是  multipart/form-data ,表示以二进制流方式处理表单数据,并将指定文件内容封装到请求参数,input的type选择file

3.controller控制器中新增处理文件上传请求

 springMVC 学习总结(三) 文件上传下载_第1张图片

 MultipartFile类型参数可以对上传文件操作,有以下方法:

springMVC 学习总结(三) 文件上传下载_第2张图片

但主要他的参数名字 myfile 必须和inpunt的name保持一致,如果不一致需要使用@RequestParam注解映射。

最重要的是,需要在springmvc的配置类中配置文件解析器,并加上@Bean注解

springMVC 学习总结(三) 文件上传下载_第3张图片

上传后返回的页面的代码:

springMVC 学习总结(三) 文件上传下载_第4张图片

效果如下:

springMVC 学习总结(三) 文件上传下载_第5张图片

-----------------------------------------------------------------------------------------------------------------------

springMVC 学习总结(三) 文件上传下载_第6张图片

 

------------------------------------------------------------------------------------------------------------------------

springMVC 学习总结(三) 文件上传下载_第7张图片

二:文件下载:

 文件下载通常有两种方式实现: 1,通过超链接点击下载实现,2.通过程序编码实现

程序编码实现有很多种方法,都不简单,此文介绍较简单的超链接实现下载

 

1.文件上传后,跳转前端页面后,点击此超链接,

springMVC 学习总结(三) 文件上传下载_第8张图片

链接:

下载

 2.然后controller处理如下:

springMVC 学习总结(三) 文件上传下载_第9张图片

注意文件下载的controller中的方法中,获取路径参数的注解@PathVariable可能会导致文件名中后缀消失,导致空指针异常,详见PathVariable注解导致文件后缀消失-CSDN博客

3.然后点击下载链接

springMVC 学习总结(三) 文件上传下载_第10张图片

然后就会弹出下载对话框

springMVC 学习总结(三) 文件上传下载_第11张图片

三.异步文件上传

有时我们希望文件上传成功后不跳转页面,而是留在当前页面,这种时候就需要通过ajax或者axios实现异步文件上传,

现在也是模拟上传图片到项目服务器下的uploadfiles目录,

1.前端代码:

springMVC 学习总结(三) 文件上传下载_第12张图片

2.通过axios发送请求

springMVC 学习总结(三) 文件上传下载_第13张图片

3.controller控制器代码:

springMVC 学习总结(三) 文件上传下载_第14张图片

文件上传还有多种跨服务器文件上传,不详细介绍。

个人学习总结,如有错误和不足,感谢指正

你可能感兴趣的:(学习)