环境准备

添加两个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. 隱藏在素數規律中的Pi -- BZOJ1041解題報告

    退役狗在刷程書的過程中看到了一個有趣的視頻, 講解了一個有趣的問題. 在網上隨便搜索了一下居然還真的找到了一道以它爲背景的OI題目, BZOJ1041. 下面的內容會首先回顧一下視頻所討論的知識, 有 ...

  2. 【项目记录】-路灯监测 gmap.net

    需求 2016年5月,客户要求在地图上显示路灯及数据,分析数据生成报表,以便查看分析路灯情况. 选型 国外项目就不考虑国内的地图了,开始想使用google的web地图,考虑到地图上标记物过多影响性能及 ...

  3. Java经典编程题50道之四十七

    读取7个数(1~50)的整数值,每读取一个值,程序打印出该值个数的*. public class Example47 {    public static void main(String[] arg ...

  4. Yii2自带的验证码背景颜色怎么调?

    看了下面的这张图片你就知道啦!

  5. elasticsearch red status fix 红色状态修复

    问题描述: spring cloud项目有用到elasticsearch,启动时进行健康校验,发现es一直是down的,导致在eureka显示也是down 问题定位:查看actuator源码发现,如果 ...

  6. HDU - 1043 A* + 康托 [kuangbin带你飞]专题二

    这题我第一次用的bfs + ELFhash,直接TLE,又换成bfs + 康托还是TLE,5000ms都过不了!!我一直调试,还是TLE,我才发觉应该是方法的问题. 今天早上起床怒学了一波A*算法,因 ...

  7. mybatis与spring的整合(使用接口实现crud)

    本人刚刚接触mybatis,今天把它和spring整合起来用了一个上午==. 一开始是通过配置文件来配置,后来尝试用了一下注解,觉得mybatis的注解真的有点恶心...一大坨的,所以我还是建议使用配 ...

  8. JavaScript将小写金额转换成大写

    //num为小写金额,单位元 changeMoney(num) { if(isNaN(num))return ""; var strPrefix=""; if( ...

  9. React——共享state

    通常,一些组件需要反映相同的数据更改,这种情况推荐将共享state移动到它们最近的公共祖先上. 在这里有一个例子:有一个温度计算器计算在给定温度是否能让水沸腾,用户可以输入华氏温度也能输入摄氏温度,当 ...

  10. R︱shiny实现交互式界面布置与搭建(案例讲解+学习笔记)

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 看了看往期的博客,这个话题竟然是第 ...