环境准备

添加两个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一下,改个配置文件,程序贼溜了起来,Σ( ° △ °|||)︴

总结

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

最新文章

  1. js学习进阶-元素获取及样式设置
  2. 2015 MVP OpenDay 及 Community Camp 演讲PPT分享
  3. 宁波uber优歩司机注册教程 UBER宁波司机注册指南!
  4. 广州APP开发外包公司哪家比较好?广州达到信息技术有限公司技术到底怎么样?
  5. Linux删除乱码文件名或者目录名
  6. 高级I/O之readn和writen函数
  7. 基于visual Studio2013解决面试题之0701寻找丑数
  8. LinqToXml高级用法介绍
  9. Remobjects使用经验
  10. async 函数
  11. AES加解密算法Qt实现
  12. Linux系列教程(四)——Linux文件和目录处理命令
  13. cookie session的共同点和区别
  14. Hibernate系列学习之(二) 多对一、一对一、一对多、多对多的配置方法
  15. Exponent CMS 2.3.9 配置文件写入 Getshell分析
  16. Pytorch 常用函数
  17. day11.1函数进阶 列表集合 字典中的函数变量,函数作为形参
  18. R语言学习网址
  19. VS2008下安装与配置DirectShow SDK 9.0 及 DirectShow AMCap改装的问题
  20. Linux修改主机名【转】

热门文章

  1. git使用步骤_2017
  2. asp.net core 一 Centos 环境部署
  3. Yii的HTML助手
  4. css渲染(二) 文本
  5. FreeImage库如何转换图片格式?
  6. DOCKER 无法获取使用宿主机DNS 的原因,解决方法
  7. oracle报表功能
  8. 【视频教程】一步步将AppBox升级到Pro版
  9. redis内存数据库C客户端hiredis API 中文说明
  10. spring schedule定时任务(二):配置文件的方式