springMVC提供的前端控制器,可以拦截所有请求,指挥调度所有后台逻辑资源。
使用传统方式进行文件上传,需要我们手动解析request对象,获取文件上传项,再进行文件的上传。
springMVC框架可以帮助我们完成对象解析的工作,这大大简化了开发人员文件上传逻辑的编写。

首先,我们需要在springmvc.xml配置文件中配置文件解析器

        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="10485760"></property></bean>

接着,编写前端代码
enctype="multipart/form-data"不能省略,并且input标签的name属性也是必要的。

<form action="file/doSpringMvcFileUpload" method="post" enctype="multipart/form-data">选择文件:<input type="file" name="fileUpload"/><br/><input type="submit" value="上传"/>
</form>

最后,编写控制器逻辑

    @RequestMapping("/doSpringMvcFileUpload")public  String doSpringMvcFileUpload(HttpServletRequest request,MultipartFile fileUpload) throws Exception {//文件上传路径String path = request.getSession().getServletContext().getRealPath("/uploads");File file = new File(path);if(!file.exists()){file.mkdirs();}String fileName = fileUpload.getOriginalFilename();String uuid  = UUID.randomUUID().toString();fileName = uuid + "-" + fileName;fileUpload.transferTo(new File(path,fileName));return "uploadSuccess";}

整个代码会比使用commons-fileupload实现更简单,文件解析器配置时,还可以指定文件上传的默认地址。值得注意的是,再控制器方法中的MultipartFile fileUpload参数的参数名,必须与前端页面的name值一致,否则,会导致执行错误,文件上传失败。

使用springMVC提供的CommonsMultipartResolver文件解析器,实现文件轻松上传相关推荐

  1. SpringMVC的视图和视图解析器

    Java知识点总结:想看的可以从这里进入 目录 2.4.视图.视图解析器 2.4.1.视图 2.4.2.视图解析器 2.4.视图.视图解析器 视图是渲染数据模型并将内容展示给用户,而视图解析器是将逻辑 ...

  2. Glib学习(17) Key-value文件解析器 Key-value file parser

    glib源码下载:http://ftp.gnome.org/pub/gnome/sources/glib/ glib帮助文档:https://developer.gnome.org/glib/ 本节主 ...

  3. 【glib】Key-value文件解析器

    1 头文件 2 描述 3 API 4 实例 4.1 本文Key-value文件解析器如下: 4.2 在准备一个Key-value文件示例文件 tt.txt 4.3 编译: 4.4 运行: 4.5 运行 ...

  4. 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化

    管理springmvc组件 概述 在使用springmvc时要配置哪些东西 前端控制器 控制器映射器和适配器 映射器  Map<Set<String>,Object> Set& ...

  5. [翻译]运用文件解析器在任意文件中使用虚拟应用路径(~)

    原文出处:http://www.codeproject.com    Using the FileResolver to allow virtual application paths ( ~ ) i ...

  6. XML - XML学习/XML文件解析器(C++)实现

    XML - XML学习/XML文件解析器(C++)实现 XML概述 ​ XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识.它也是元标记语言,用于定义其他与特定领域有关的, ...

  7. SpringMVC(一)视图解析器

    springMVC是一个基于spring的一个框架,实际上 就是spring的一个模块,专门做web开发. 是servlet的一个升级. web开发的底层是servlet,框架是再servlet基础上 ...

  8. torrent文件解析器

    第二步工作是解析torrent文件,有了bencoding编码解析器 解析torrent文件当然是易如反掌的任务了. 实现的封装类CTorrentParser,完成的主要任务有: 1.判断torren ...

  9. 分布式.RPC-WebService入门案例(java实现,注解实现,xsd文件解析,wsdl文件解析)

     系列博文: 分布式.RPC调用-RMI & Hessian框架_闲猫的博客-CSDN博客 分布式.RPC-WebService三要素,三个规范, Soap协议_闲猫的博客-CSDN博客 分布 ...

最新文章

  1. 训练指南第二章-基础问题
  2. 生产环境中配置的samba
  3. 组会PPT20201030《复现chen结果及初始密度影响》
  4. 关于Layout Weight一些使用技巧
  5. boost::process:std_out相关的测试程序
  6. Struts2基础知识(三)
  7. (转)Struts2的拦截器
  8. 硬核软件开发者 30 多年的 11 条经验教训
  9. Nhibernate出现No row with the given identifier exists问题的产生原因及解决方法
  10. VB中PictureBox控件使用教程
  11. jfreechart折线图y轴刻度值_Python matplotlib绘制折线图
  12. 440.字典序中的第K小数字
  13. 这些CAD制图初学入门问题你遇到过吗?CAD制图初学入门全攻略!
  14. TQ2440的学习——UBOOT移植(NAND FLASH的支持)——初步分析
  15. 在springboot中使用腾讯QQ邮箱发送邮件时出现的错误
  16. 街霸 隆(Ryu)升龙拳(Syoryuken)动画(四)制作过程中几个版本动画比较一下
  17. 仿个人税务 app html5_全城警惕!假个税APP正在抢你的钱!
  18. markdown符号表情 readme符号表情 github Profile自述文件用
  19. 【成为架构师课程系列】消息队列:秒杀时如何处理每秒上万次的下单请求?
  20. 人际间亲密关系可能呈现函数式变化

热门文章

  1. 如何根据参数类型重载__init__方法?
  2. 在C#中将字符串转换为字节数组
  3. 在UITableView中使用自动布局以获取动态单元格布局和可变的行高
  4. Java的“ for each”循环如何工作?
  5. linux如何查icsci进程,linux13问
  6. nexus4恢复原生系统_深度好文!新浪微博架构师详析微博云原生技术的思考与实践...
  7. 读取usb口数据_Mixly 第12课 模拟值读取实验串口使用
  8. 未预期的符号 `( 附近有语法错误_苹果iOS 14.2现在提供117种新的表情符号和新的壁纸...
  9. linux :Tar 命令参数详解
  10. 【Spring第九篇】AOP