Spring Boot上传文件出错,Required request part fileis not present
先上代码:
@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相关推荐
- Spring Boot上传文件报UT005023 MultipartException NoSuchFileException
1.抛出问题: Spring Boot上传文件报: UT005023: Exception handling request to /management/certificateAuthority/u ...
- Spring Boot 上传文件(spring boot upload file)
本篇文章将说明在Spring Boot web程序中如何上传文件. 开发环境: 1. eclipse Oxygen Release (4.7.0) 2. Spring Boot 1.4.3 RELEA ...
- Spring Boot(十七):使用Spring Boot上传文件
Spring Boot(十七):使用Spring Boot上传文件 环境:Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0 一.pom包配置 <parent> ...
- (转)Spring Boot(十七):使用 Spring Boot 上传文件
http://www.ityouknow.com/springboot/2018/01/12/spring-boot-upload-file.html 上传文件是互联网中常常应用的场景之一,最典型的情 ...
- springboot上传文件同时传参数_Spring Boot 系列:使用 Spring Boot 上传文件
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例. 1.pom 包配置 我们使用 Spring Boot 版本 2. ...
- Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器)
Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器) 主要思路 上传图片的思路有两种: 第一种是上传到应用服务器,再由应用服务器上传到OSS.这种适合上传的文件较小,较为简单, ...
- Spring boot 上传文件时 MultipartFile 报空指针
//直接上代码,这是一开始写的一个简单的 单文件上传 然后死活不好用 一直报500 走了断点跟了一下 看到multipartFile 是个null 有点疑惑 SimpleDateFormat sdf ...
- springboot urlresource_Spring Boot上传文件+部署到Tomcat
1 概述 Spring Boot上传文件,根据官方uploadfile示例修改的,可以打成war放到服务器上(笔者使用的是Tomcat).主要步骤是创建异常类,属性类,接口类与控制器类,最后进行少量修 ...
- Spring MVC上传文件原理和resolveLazily说明
问题:使用Spring MVC上传大文件,发现从页面提交,到进入后台controller,时间很长.怀疑是文件上传完成后,才进入.由于在HTTP首部自定义了"Token"字段用于权 ...
最新文章
- .net core快速上手
- 程序员高薪盛宴背后:程序员正在消失?
- vue组件调用(用npm安装)
- wsdl文件是怎么生成的_C++ 动态库.dll的生成---超级详细!!!
- python函数后面两个括号_简单了解为什么python函数后有多个括号
- android 中在CMD中查看sqlite
- oracle表中一个字段内容导出到磁盘上
- No pubspec.yaml file found. This command should be run from the root of your Flutter project. Do not
- 细心微服务架构的优势与不足那点事
- bittorrent 学习(一) 种子文件分析与bitmap位图
- 用于视觉问答的相互注意融合模型《Reciprocal Attention Fusion for Visual Question Answering》
- 英语翻译作业(十二)
- ctf比赛/学习资源整理,记得收藏!
- win10快捷键【常用】桌面切换等快捷键
- html的后代选择器,html5怎么使用后代选择器?html选择后代的两种方式详解!
- windows应用启动java -jar
- django实现qq一键登录(qq互联)
- oracle bround,【案例】Oracle警告 WARNING:inbound connection timed out (ORA-3136)解决办法
- 【C语言】强符号和弱符号
- UI设计师这些面试技巧你知道吗?
热门文章
- airserver是什么软件?
- CPU算力(cpu理论浮点运算值)
- win10找不到打印机_Win10电脑找不到自家Wifi无线网络解决方法 可能是无线信道问题...
- AndroidP/Q/R编译系统
- 苹果手机拆机与原理图对比分析(设计规范篇)
- 计算机cg all丢失是什么意思,CG处理是什么意思啊?
- 三菱fx2n做从站的modbus通讯_3个月高效掌握三菱PLC!100多个知识点,四个阶段经验大总结...
- 乐优商场项目day02——总结
- 使用halcon对图像中的圆进行圆心圆心距测量并标注
- npm常用命令学习(npm install -D,semver版本规范, npm进行版本管理的最佳实践用法)...