先上代码:

@RestController
@RequestMapping("/file")
//@PreAuthorize("hasAuthority(ROLE_USER)")
public class FileController {/*** 提取文件上传的公用代码** @param uploadDir //文件储存路径* @param file      //要上传的文件*/private void executeUpload(String studentId, String uploadDir, MultipartFile file) {//文件后缀名String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));//上传文件名
//        String fileName = UUID.randomUUID() + suffix;//文件名为当前日期,如2018101310243010(2018年10月13日10时24分。。。),再加上studentIdString fileName = DateUtil.convert2String(new Date()) + studentId + suffix;//服务器端保存的文件对象File serverFile = new File(uploadDir + fileName);//将上传的文件写入到服务器端文件内try {file.transferTo(serverFile);} catch (IOException e) {e.printStackTrace();}}/*** 单文件上传** @param request* @param file    前台上传的文件对象* @return*/@PostMapping("/fileupload")@ResponseBodypublic String upload(Map map, HttpServletRequest request, HttpServletResponse response, @RequestParam("file")MultipartFile file) {try {String id = (String) map.get("id");//上传目录地址String uploadDir = request.getSession().getServletContext().getRealPath("/") + "/upload/";//如果目录不存在,自动创建目录File dir = new File(uploadDir);if (!dir.exists()) {dir.mkdir();}//调用上传方法executeUpload(id, uploadDir, file);} catch (Exception e) {//打印错误堆栈信息e.printStackTrace();return "上传失败";}return "上传成功";}
}

今天使用postman来测试文件上传的时候,总是报“Required request part ‘file’ is not present”的错误,查阅了很多资料也还是无法解决这个问题。突然想到@RequestParam(“file”)MultipartFile file中RequestParam需要的参数是“file”,那我在postman中指定文件的key为“file”,来测试一下,发现竟然成功了!!到这里我就想去查一下注解RequestParam的作用。

@RequestParam是传递参数的.

@RequestParam用于将请求参数区数据映射到功能处理方法的参数上。

public String queryUserName(@RequestParam String userName)
在url中输入:localhost:8080/**/?userName=zhangsan

请求中包含username参数(如/requestparam1?userName=zhang),则自动传入。

接下来我们看一下@RequestParam注解主要有哪些参数:

value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;

required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;

defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties[‘java.vm.version’]}”。

之前我在上传文件的时候指定的key与@RequestParam中要求的不一致,导致了后台不能获取到上传的文件。

Spring Boot上传文件出错,Required request part fileis not present相关推荐

  1. Spring Boot上传文件报UT005023 MultipartException NoSuchFileException

    1.抛出问题: Spring Boot上传文件报: UT005023: Exception handling request to /management/certificateAuthority/u ...

  2. Spring Boot 上传文件(spring boot upload file)

    本篇文章将说明在Spring Boot web程序中如何上传文件. 开发环境: 1. eclipse Oxygen Release (4.7.0) 2. Spring Boot 1.4.3 RELEA ...

  3. Spring Boot(十七):使用Spring Boot上传文件

    Spring Boot(十七):使用Spring Boot上传文件 环境:Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0 一.pom包配置 <parent> ...

  4. (转)Spring Boot(十七):使用 Spring Boot 上传文件

    http://www.ityouknow.com/springboot/2018/01/12/spring-boot-upload-file.html 上传文件是互联网中常常应用的场景之一,最典型的情 ...

  5. springboot上传文件同时传参数_Spring Boot 系列:使用 Spring Boot 上传文件

    上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例. 1.pom 包配置 我们使用 Spring Boot 版本 2. ...

  6. Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器)

    Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器) 主要思路 上传图片的思路有两种: 第一种是上传到应用服务器,再由应用服务器上传到OSS.这种适合上传的文件较小,较为简单, ...

  7. Spring boot 上传文件时 MultipartFile 报空指针

    //直接上代码,这是一开始写的一个简单的 单文件上传 然后死活不好用 一直报500 走了断点跟了一下 看到multipartFile 是个null 有点疑惑 SimpleDateFormat sdf ...

  8. springboot urlresource_Spring Boot上传文件+部署到Tomcat

    1 概述 Spring Boot上传文件,根据官方uploadfile示例修改的,可以打成war放到服务器上(笔者使用的是Tomcat).主要步骤是创建异常类,属性类,接口类与控制器类,最后进行少量修 ...

  9. Spring MVC上传文件原理和resolveLazily说明

    问题:使用Spring MVC上传大文件,发现从页面提交,到进入后台controller,时间很长.怀疑是文件上传完成后,才进入.由于在HTTP首部自定义了"Token"字段用于权 ...

最新文章

  1. .net core快速上手
  2. 程序员高薪盛宴背后:程序员正在消失?
  3. vue组件调用(用npm安装)
  4. wsdl文件是怎么生成的_C++ 动态库.dll的生成---超级详细!!!
  5. python函数后面两个括号_简单了解为什么python函数后有多个括号
  6. android 中在CMD中查看sqlite
  7. oracle表中一个字段内容导出到磁盘上
  8. No pubspec.yaml file found. This command should be run from the root of your Flutter project. Do not
  9. 细心微服务架构的优势与不足那点事
  10. bittorrent 学习(一) 种子文件分析与bitmap位图
  11. 用于视觉问答的相互注意融合模型《Reciprocal Attention Fusion for Visual Question Answering》
  12. 英语翻译作业(十二)
  13. ctf比赛/学习资源整理,记得收藏!
  14. win10快捷键【常用】桌面切换等快捷键
  15. html的后代选择器,html5怎么使用后代选择器?html选择后代的两种方式详解!
  16. windows应用启动java -jar
  17. django实现qq一键登录(qq互联)
  18. oracle bround,【案例】Oracle警告 WARNING:inbound connection timed out (ORA-3136)解决办法
  19. 【C语言】强符号和弱符号
  20. UI设计师这些面试技巧你知道吗?

热门文章

  1. airserver是什么软件?
  2. CPU算力(cpu理论浮点运算值)
  3. win10找不到打印机_Win10电脑找不到自家Wifi无线网络解决方法 可能是无线信道问题...
  4. AndroidP/Q/R编译系统
  5. 苹果手机拆机与原理图对比分析(设计规范篇)
  6. 计算机cg all丢失是什么意思,CG处理是什么意思啊?
  7. 三菱fx2n做从站的modbus通讯_3个月高效掌握三菱PLC!100多个知识点,四个阶段经验大总结...
  8. 乐优商场项目day02——总结
  9. 使用halcon对图像中的圆进行圆心圆心距测量并标注
  10. npm常用命令学习(npm install -D,semver版本规范, npm进行版本管理的最佳实践用法)...