环境准备

添加两个jar包

  commons-fileupload-1.2.2.jar

  commons-io-2.4.jar

配置要求

在springmvc.xml中配置multipart类型解析器

<!-- 文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>

前台表单

<form name="form" action="${ctx}/user/upload.action" enctype="multipart/form-data" method="post">
<input type="text" name="username" value="${user.username}" >
<input type="text" name="password" value="${user.password}" >
<input type="file" name="file">
</form>

细节:一定要记得加上enctype属性

后台接收

  1. 方法一

    简单粗暴,SpringMVC会直接帮你封装到对应对象中
@RequestMapping(value="/upload", method=RequestMethod.POST)
public String upload(User user, MultipartFile file){
System.out.println(file.getOriginalFilename());
//此处省略一万字...
}
  1. 方法二

    也可以直接操作原始的请求和响应
@RequestMapping(value="/upload", method=RequestMethod.POST)
public String upload(HttpServletRequest request, HttpServletResponse response){
MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
MultipartFile mFile = mRequest.getFile("file");
System.out.println(mFile.getOriginalFilename());
//获取普通参数
String username = mRequest.getParameter("username");
//此处省略一万字...
}

那么问题来了

  这么简单明了的代码,我竟然上传时进不来后台,前台能够成功响应到对应地址,但确是空白页面!说实话工作时有第一种方法谁还这么闲情逸致专门去用第二种方法实现,又是一个几分钟的事情搞了我几个小时。表示再次怀疑自己浏览器还是编译器的问题,还是问问领导好了= =。看了几眼,的确不是代码的错(松了一口气,要不脸都丢光了哈哈哈)看来看去我自己也有点感觉了,项目配置的问题!业界大佬看到这里多半会心一笑(如果有的话啊哈哈哈),这么简单的问题还需要想的吗?咳咳,我也觉得,小白不是好称呼,要努力摆脱才行你说是吧。哦对了,之所以值得一提,因为我不上传文件时还有上传jpg时完全没毛病,就当作是掩饰自己是码畜的借口吧,一到上传apk就挂了,蒙蔽了双眼。这不后来,领导搜索对应文件的速度不是能比的,眨眼工夫就点开了文件的拦截器,实在惭愧,debug一下,改个配置文件,程序贼溜了起来,Σ( ° △ °|||)︴

总结

  废话这么多,只是想记录一下踩过的坑,说不上以后忘得一干二净,起码回头想起来有东西查,不至于重头翻他人记录,说实话找资料挺烦,多半人实际内容差不多,只是可能吧,有些博主尚未尝试过就转载或是复制粘贴,有点反感,还是看过不少没营养的博文的=_=,还是以后看自己的算了啊哈哈哈

踩坑の SpringMVC文件上传的更多相关文章

  1. SpringBoot1.x升级SpringBoot2.x踩坑之文件上传大小限制

    SpringBoot1.x升级SpringBoot2.x踩坑之文件上传大小限制 前言 LZ最近升级SpringBoo框架到2.1.6,踩了一些坑,这里介绍的是文件上传大小限制. 升级前 #文件上传配置 ...

  2. springMVC文件上传大小超过限制的问题

    [转自]https://my.oschina.net/ironwill/blog/646762 springMVC是一个非常方便的web层框架,我们使用它的文件上传也非常的方便. 我们通过下面的配置来 ...

  3. SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库

    SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库  /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...

  4. springmvc文件上传下载简单实现案例(ssm框架使用)

    springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...

  5. 解决springMVC文件上传报错: The current request is not a multipart request

    转自:https://blog.csdn.net/HaHa_Sir/article/details/79131607 解决springMVC文件上传报错: The current request is ...

  6. 18 SpringMVC 文件上传和异常处理

    1.文件上传的必要前提 (1)form 表单的 enctype 取值必须是:multipart/form-data(默认值是:application/x-www-form-urlencoded) en ...

  7. springmvc文件上传AND jwt身份验证

    SpringMVC文件上传 思路:1.首先定义页面,定义多功能表单(enctype=“multipart/form-data”)2.在Controller里面定义一个方法,用参数(MultipartF ...

  8. TZ_06_SpringMVC_传统文件上传和SpringMVC文件上传方式

    1.传统文件上传方式 <!-- 文件上传需要的jar --> <dependency> <groupId>commons-fileupload</groupI ...

  9. SpringMVC文件上传下载(单文件、多文件)

    前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...

随机推荐

  1. php获取今日开始时间戳和结束时间戳

    1.php获取今日开始时间戳和结束时间戳  $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));$endToday=mktime(0,0,0 ...

  2. Trie树 字典树-学习笔记

    字符串--蒟蒻永远的阴影 对于字符串匹配 KMP很好的解决了以一个文本串匹配一个模板串的问题 但如果模板串有多个呢 这是KMP不再适用 我们引入一个新的数据结构--字典树 (当然又有像AC自动机这样更 ...

  3. 利用Jsonp实现跨域请求,spring MVC+JQuery

    1 什么是Jsonp? JSONP(JSON with Padding)是数据格式JSON的一种"使用模式",可以让网页从别的网域要数据.另一个解决这个问题的新方法是跨来源资源共享 ...

  4. ajax上传图片chrome报错net::ERR_CONNECTION_RESET/net::ERR_CONNECTION_ABORTED

    网上搜了一下,base64图片太大,tomcat对post请求大小有默认限制,要在tomcat配置文件server.xml 加一个:maxPostSize="0",0表示无限制 & ...

  5. iOS开发引入第三方类库的问题

    在开发iOS程序的过程中,通常在导入第三方的类库(.a/.o)文件会报出一系列的错误: Undefined symbols for architecture i386: "std::stri ...

  6. spring cron 定时任务

    文章首发于个人博客:https://yeyouluo.github.io 0 预备知识:cron表达式 见 <5 参考>一节. 1 环境 eclipse mars2 + Maven3.3. ...

  7. ACdream1032 Component 树形DP

    思路:dp[i][j]表示以i为根结点有j个连通节点的最小和, 当进行状态转移时需要利用01背包,节点u下面有多个子节点,每个子节点可以最多可以贡献cnt[v]个节点,cnt[v]表示以v为根结点的树 ...

  8. 科学计算工具-Numpy初探

    Numpy基础数据结构 Numpy数组是一个多维数组,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的原数据 导入该库: import numpy as np 多维数组ndarray ...

  9. 内置函数 -- bytes -- 字节码与字符串相互转换

    说明: 1. 返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内,是bytearray函数的具有相同的行为,差别仅仅是返回的字节数组不可修改. 2. 当3个参数都不传的时候,返 ...

  10. javascript类型判断方法

    判断javascript中的类型,共有四种常用的方法 var a=6; var b="str"; var c=true; var arr=[]; typeof 用于基本类型的判断 ...