前言

今天学习使用springboot实现文件上传与下载功能,在实现文件上传的时候代码都没问题,但是每次提交后端都包空指针异常,最后发现获取的file为null。

先看代码

前端代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>文件上传</title>
</head>
<body>
<div style="text-align: center"><form action="/uploadFile" method="post" enctype="multipart/form-data">上传:<input type="file" name="filename"/><input type="submit" value="submit"/></form>
</div>
</body>
</html>

控制器代码

package com.hjk.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;@Controller
public class FileController {@GetMapping("/toUpload")public String toUpload(){return "upload";}@RequestMapping(value = "/uploadFile",method = RequestMethod.POST)public String uploadFile(MultipartFile file){String filename = file.getOriginalFilename();String dirPath = "D:/file/";File filePath = new File(dirPath);if (!filePath.exists()){filePath.mkdir();}try {file.transferTo(new File(dirPath+filename));} catch (IOException e) {e.printStackTrace();}return "upload";}}

解决方式

我也看了很多博客,有的说是没有注册multipartResolver这个Bean,有的说是版本问题等等,还有的说是前端没有设置enctype类型。按照他们的方式我都进行了修改,但是我这个问题还是没有解决。
最终实现: 最后我在控制器方法里面参数加上了@RequestParam注解,这个后端就能获取文件了。

  • @RequestPara(“filename”)必须获取参数名为filename的file参数

  • @RequestParam()默认为必传属性,可以通过@RequestParam(required = false)设置为非必传。因为required值默认是true,所以默认必传

  • @RequestParam(“filename”)或者@RequestParam(value = “filename”)指定参数名

  • @RequestParam(defaultValue = “0”)指定参数默认值

最后代码

package com.hjk.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;@Controller
public class FileController {@GetMapping("/toUpload")public String toUpload(){return "upload";}@RequestMapping(value = "/uploadFile",method = RequestMethod.POST)public String uploadFile(@RequestParam("filename") MultipartFile file){String filename = file.getOriginalFilename();String dirPath = "D:/file/";File filePath = new File(dirPath);if (!filePath.exists()){filePath.mkdir();}try {file.transferTo(new File(dirPath+filename));} catch (IOException e) {e.printStackTrace();}return "upload";}}

我的这个springboot版本是2.6.6至于真正原因现在不想思考了,等以后遇到再改吧。不知道这个对你有没有帮助。

Spring Boot 文件上传后端获取为null相关推荐

  1. vueform表单文件上传_峰哥说技术系列-8.Spring Boot文件上传(Form表单和Ajax方式)

    今日份主题 Spring Boot文件上传(Form表单和Ajax方式) 在Spring Boot中,和文件上传的主要和MultipartResolver接口有关,他有两个实现类 StandardSe ...

  2. 全栈开发实战|Spring Boot文件上传与下载

    文件上传与下载是Web应用开发中常用的功能之一.接下来我们将讨论如何在Spring Boot的Web应用开发中,如何实现文件的上传与下载. 01.Spring Boot文件上传与下载 在实际的Web应 ...

  3. Spring Boot文件上传及回显(单/多文件)

    一.单文件上传 1.前端页面 <!DOCTYPE html> <html lang="en"> <head><meta charset=& ...

  4. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  5. Spring Boot 文件上传

    其实网上已经有很多这样的文章了.为什么我还要记录一下呢?原因是在工作中对接外系统时,碰到了他们调取我们文件上传接口确存在着http请求头部规范的情况,从而导致用传统方法获取不到参数.今天就来整理下Sp ...

  6. Spring MVC,Spring Boot文件上传

    在传统的ssm项目开发时,如果用到文件上传,一般是在xml配置文件中,定义bean, <bean id="multipartResolver" class="org ...

  7. Spring Boot文件上传示例

    一.创建一个简单的包含WEB依赖的SpringBoot项目 pom.xml内容: <!-- Spring Boot web启动器 --> <dependency><gro ...

  8. Spring Boot教程(十三):Spring Boot文件上传

    分享一个零基础,通俗易懂,而且非常风趣幽默的人工智能教程(如不能直接点击访问,请以"右键"->"在新标签页中打开链接"方式打开)网站,网址:https:/ ...

  9. Spring Boot文件上传

    一.创建一个简单的包含WEB依赖的SpringBoot项目 二.配置文件上传的文件大小限制 # 上传文件总的最大值 spring.servlet.multipart.max-request-size= ...

最新文章

  1. jdbc mysql 返回游标_使用JdbcTemplate流式(游标)读取数据库
  2. 2021年宝鸡中学高考成绩查询,宝鸡各高中2020年高考喜报成绩一览
  3. excel 如何用vba将某一条记录移动到另一张工作表中_EXCEL常用快捷键
  4. java编程_Java编程和C语言的比较
  5. 对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断
  6. 训练日志 2019.3.10
  7. python etree pandas_python爬虫Xpath,pandas示例
  8. (3~4):C实现数组选择排序
  9. 9个适合web开发人员的CSS工具
  10. Linux ssh 允许 root用户 登录
  11. 【数据结构和算法笔记】数组(数组的储存方式和特殊矩阵的压缩储存)
  12. mysql coreseek_关于mysql中文全文检索Sphinx之coreseek
  13. Vue插件-json编辑器
  14. 【Axure PR原型模板】微信公众小程序手机移动端高保真交互原型
  15. UE 编辑器无法保存文件(图表被连接到外部包中的私有对象)
  16. 5000字:一文看懂用户运营之增长八卦模型
  17. Windows11无法打开 WindowsTerminal 图形化设置界面
  18. Lightroom导入JPG格式的图像
  19. 美国计算机专业nlp大学排名,美国人工智能专业排名前十的学校
  20. 基于多时间尺度滚动优化的多能源微网双层调度模型

热门文章

  1. Abb通过OPC UA 和PLC进行通讯
  2. STC89C52RC单片机实现闪烁灯的几种编程实现。
  3. XenDesktop7.12发布应用程序
  4. ie下载java就花屏,“浏览器花屏的解决方案”的解决方案
  5. GCN实战深入浅出图神经网络第五章:基于Cora数据集的GCN节点分类 代码分析
  6. java编码格式的转换以及乱码恢复
  7. VST3主机开发(二)——插件调用
  8. 如何在看到美景美人时拍出惊艳的照片《数码摄影从入门到精通》
  9. 关于936A 936B 936C发热芯 A1321 A1322 A1323的区别
  10. python电路仿真_Python创建PWL用于SPICE仿真