问题原因

使用Apache Commons FileUpload组件上传文件时总是返回null,调试发现ServletFileUpload对象为空,在Spring Boot中有默认的文件上传组件,在使用ServletFileUpload时需要关闭Spring Boot的默认配置 ,禁用MultipartResolverSpring提供的默认值

解决办法:
在yml配置文件中添加 spring.servlet.multipart.enabled=false

注:
将表单中的数据变成二进制数据(enctype=“multipart/form-data”)进行上传,这时候如果用request是无法直接获取到相应表单的值的

解决办法:

public void execute1(HttpServletRequest request) throws IOException {try {//获取文件保存路径,判断是否存在该目录如果不存在创建String Path = "/test.txt";File file = new File(Path);//判断文件是否存在,不存在就创建if (!file.exists() && !file.isDirectory()) {file.mkdirs();}DiskFileItemFactory factroy = new DiskFileItemFactory();//创建文件上传解析器ServletFileUpload upload = new ServletFileUpload(factroy);//判断前端form表单是否为enctype="multipart/form-data"属性boolean isF = ServletFileUpload.isMultipartContent(request);//如果前端传过来的是表单是enctype="multipart/form-data"属性if (isF) {//使用解析器解析上传的表单数据,每个FileItem对应一个表单项List<FileItem> fileItemList = upload.parseRequest(request);for (FileItem fileItem : fileItemList) {if (!fileItem.isFormField()) {//不是普通的表单项,即是上传的是文件//获取文件名称String fileName = fileItem.getName();if (fileName.isEmpty()) {//如果文件名为空return;}//获取上传文件输入流InputStream in = fileItem.getInputStream();//创建文件输出流Path += "\\" + fileName;String str = "";String leng = "";BufferedReader br = new BufferedReader(new InputStreamReader(in, "utf-8"));while ((leng = br.readLine()) != null) {str += leng;}System.out.println(str);BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(Path))));bw.write(str);bw.flush();bw.close();br.close();//FileItem对象被垃圾收集器收集时会自动清除临时文件,但及时调用delete方法可以更早的清除临时文件,释放系统存储资源。// 另外,当系统出现异常时,仍有可能造成有的临时文件被永久保存在了硬盘中。fileItem.delete();} else {/*** 获取表单中的非文件值*///表单中的空间name值System.out.println(fileItem.getFieldName());//该name值空间中的value值System.out.println(fileItem.getString("UTF-8"));}}} else {//判断前端form表单不是enctype="multipart/form-data"属性,这里就不做处理了}} catch (Exception e) {e.printStackTrace();}}

Spring Boot 使用 ServletFileUpload上传文件失败,upload.parseRequest(request)为空相关推荐

  1. 【Spring Boot】关于上传文件例子的剖析

    目录 Spring Boot 上传文件 功能实现 增加ControllerFileUploadController 增加ServiceStorageService 增加一个Thymeleaf页面 修改 ...

  2. Spring Boot接收前端上传的多个文件

    Spring Boot接收前端上传的多个文件 突然被问到这个功能,太久没用到这个功能,印象有些模糊,这个文章记录一下. 前端那里会传一个字段和一些文件到后端,然后后端接收保存一下. 代码 可以直接使用 ...

  3. 上传文件失败问题 error为7

    一个站点上传文件失败 error为7  UPLOAD_ERR_CANT_WRITE 临时文件上传不上  $_FILE打出来 Array (     [file] => Array         ...

  4. 记在k8s的pod上使用apache的commons-net:ftp功能时,ftp一直上传文件失败

    2019独角兽企业重金招聘Python工程师标准>>> 在k8s的pod上使用apache的commons-net:ftp功能时,一直显示: 即上传文件失败,但是在本地环境进行上传时 ...

  5. Hadoop上传文件失败

    HDFS上传文件失败的原因以及解决方法 本来打算上传一个文件 hdfs dfs -put /opt/software/upload.txt /test 但是报错了!!! 百度了很多,但是没有一条适合我 ...

  6. TFS文档管理,上传文件失败报错【TF30042】The database is full. 数据库已满,解决办法及步骤

    在TFS是用过程中,上传文件失败,发现报错[TF30042],问题截图长这样: 分3步排查问题, 第1步:先查看自己TFS所在数据库存储情况,方法如下: 打开SQL Server Management ...

  7. 英文投稿系统上传文件失败怎么办?

    英文投稿系统上传文件失败怎么办? 文件上传失败的几个原因 文件上传失败的几个解决方法 文件上传失败的几个原因 1.文件格式不符合投稿系统要求(比如:文件太大或者图片格式不符合要求或者文件类型不符合要求 ...

  8. ServletFileUpload上传文件带进度条

    ServletFileUpload上传文件带进度条 涉及了两个架包:commons-io-2.0.1.jar,commons-fileupload-1.2.2.jar,还有一个jquery-2.2.4 ...

  9. 解决ServletFileUpload上传文件时,获取上传文件名出现中文乱码问题

    解决ServletFileUpload上传文件时,获取上传文件名出现中文乱码问题 在我们使用ServletFileUpload上传文件时,我们通常会获取其上传的文件名,然而当文件名包含中文时,便可能出 ...

最新文章

  1. 区块链BaaS云服务(19)趣链Hyperchain
  2. Microsoft.CSharp.CSharpCodeProvider
  3. UVA524 PrimeRingProblem素数环
  4. android元素离边框间距,RecyclerView Item 的分割线 距边框距离问题总结
  5. 垃圾收集:提高吞吐量
  6. python建db文件_临时数据库之python用sqlite3模块操作sqlite
  7. Nginx取消泛解析
  8. 北京交通大学离散数学 谓词逻辑_离散数学_北京交通大学_中国大学MOOC(慕课)
  9. Java 完全自学手册,从外包到大厂,再到年薪 100 万技术大佬都靠它
  10. 如何将APK上传到谷歌应用市场
  11. 自创RTSP 服务器 用多款客户端软件测试接入可以,唯独VLC接入不了
  12. 【其他专题】好用的截图(包括动图gif)软件分享
  13. C/C++编程学习 - 第5周 ③ 圆锥体的体积
  14. java实现心型代码
  15. 跨境电商特点有哪些?
  16. 30道python自动化测试面试题
  17. 《设计模式之禅》观后感-六大设计原则(一)
  18. 自动驾驶 | 传感器融合–自动驾驶的关键技术
  19. MaskRcnn ImportError: _C.cpython-37m-x86_64-linux-gnu.so: undefined symbol:XXX
  20. AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼

热门文章

  1. python高级函数六剑客
  2. xss跳转代码_XSS(跨站脚本攻击)
  3. 带PLL的三相桥式(Three-phase bridge)整流电路simulink仿真分析与实现
  4. 圣旨开头写“奉天承运皇帝诏曰”是谁发明的?
  5. 无双无名之辈--电影资源分享
  6. 转:设置允许用户利用itunes同步一些资源到我们的App中
  7. 体验共享已“上头”,娱乐社交咋“追风”?
  8. c#使用MethodInvoker解决跨线程访问控件
  9. esp8266wifi继电器点灯科技Blinker和小爱同学控制
  10. 华为新品Mate50将搭载北三短报文通信功能?这项技术是何方神圣