SpringMVC上传文件的简单实例

发布时间 - 2026-01-11 01:52:33    点击率:

SpringMVC上传文件的简单实例

在使用springMVC进行系统实现时,springMVC默认的解析器里面是没有加入对文件上传的解析的,这可以方便我们实现自己的文件上传。但如果你想使用springMVC对文件上传的解析器来处理文件上传的时候就需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明。这样之后,客户端每次进行请求的时候,springMVC都会检查request里面是否包含多媒体信息,如果包含了就会使用MultipartResolver进行解析,springMVC会使用一个支持文件处理的MultipartHttpServletRequest来包裹当前的HttpServletRequest,然后使用MultipartHttpServletRequest就可以对文件进行处理了。Spring已经为我们提供了一个MultipartResolver的实现,我们只需要拿来用就可以了,那就是org.springframework.web.multipart.commons.CommsMultipartResolver。因为springMVC的MultipartResolver底层使用的是Commons-fileupload,所以还需要加入对Commons-fileupload.jar的支持。

Xml代码

<!-- 这里申明的id必须为multipartResolver --> 
<bean id="multipartResolver" 
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
 
  <!-- one of the properties available; the maximum file size in bytes --> 
  <property name="maxUploadSize" value="100000"/> 
</bean> 

CommonsMultipartResolver允许设置的属性有:

     defaultEncoding:表示用来解析request请求的默认编码格式,当没有指定的时候根据Servlet规范会使用默认值ISO-8859-1。当request自己指明了它的编码格式的时候就会忽略这里指定的defaultEncoding。
    uploadTempDir:设置上传文件时的临时目录,默认是Servlet容器的临时目录。
    maxUploadSize:设置允许上传的最大文件大小,以字节为单位计算。当设为-1时表示无限制,默认是-1。
    maxInMemorySize:设置在文件上传时允许写到内存中的最大值,以字节为单位计算,默认是10240。 

下面是一个简单示例:

.html文件

<html> 
  <head> 
    <title>Upload a file please</title> 
  </head> 
  <body> 
    <h1>Please upload a file</h1> 
<!--  enctype(编码格式)必须为multipart/form-data --> 
    <form method="post" action="/form" enctype="multipart/form-data"> 
      <input type="text" name="name"/> 
      <input type="file" name="file"/> 
      <input type="submit"/> 
    </form> 
  </body> 
</html> 
 

对应的action controller:

Java代码

@Controller 
public class FileUpoadController { 
 
  @RequestMapping(value = "/form", method = RequestMethod.POST) 
  public String handleFormUpload(@RequestParam("name") String name, 
    @RequestParam("file") MultipartFile file) { 
    //MultipartFile是对当前上传的文件的封装,当要同时上传多个文件时,可以给定多个MultipartFile参数 
    if (!file.isEmpty()) { 
      byte[] bytes = file.getBytes(); 
      // store the bytes somewhere 
      //在这里就可以对file进行处理了,可以根据自己的需求把它存到数据库或者服务器的某个文件夹 
 
      return "redirect:uploadSuccess"; 
    } else { 
      return "redirect:uploadFailure"; 
    } 
  } 
 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# SpringMVC上传文件  # JSP  # 上传文件实例  # SpringMVC+Ajax实现文件批量上传和下载功能实例代码  # SpringMVC上传文件的两种方法  # SpringMVC多个文件上传及上传后立即显示图片功能  # SpringMVC实现文件上传和下载功能  # SpringMVC 单文件上传与多文件上传实例  # SpringMVC实现文件的上传和下载实例代码  # JavaEE开发之SpringMVC中的自定义消息转换器与文件上传  # SpringMVC文件上传功能实例解析  # SpringMVC文件上传及查看的示例代码  # 文件上传  # 自己的  # 就会  # 多个  # 就可  # 上传  # 以对  # 上传文件  # 的是  # 是一个  # 在这里  # 只需  # 设为  # 你想  # 把它  # 希望能  # 还需要  # 写到  # 谢谢大家  # 可以根据 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Python图片处理进阶教程_Pillow滤镜与图像增强  jquery插件bootstrapValidator表单验证详解  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  大型企业网站制作流程,做网站需要注册公司吗?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Laravel如何创建自定义Artisan命令?(代码示例)  如何在阿里云高效完成企业建站全流程?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  如何获取上海专业网站定制建站电话?  详解jQuery中的事件  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Java解压缩zip - 解压缩多个文件或文件夹实例  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  Linux系统命令中screen命令详解  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  免费网站制作appp,免费制作app哪个平台好?  深圳网站制作的公司有哪些,dido官方网站?  香港网站服务器数量如何影响SEO优化效果?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  大同网页,大同瑞慈医院官网?  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  如何在建站之星网店版论坛获取技术支持?  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  什么是javascript作用域_全局和局部作用域有什么区别?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  利用vue写todolist单页应用  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  EditPlus中的正则表达式实战(5)  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  魔毅自助建站系统:模板定制与SEO优化一键生成指南  如何用搬瓦工VPS快速搭建个人网站?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel怎么实现验证码(Captcha)功能