一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 解決SpringBoot中MultipartResolver和ServletFileUpload的沖突問題

解決SpringBoot中MultipartResolver和ServletFileUpload的沖突問題

2022-02-28 13:17wmy_0707 Java教程

這篇文章主要介紹了解決SpringBoot中MultipartResolver和ServletFileUpload的沖突問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MultipartResolver和ServletFileUpload沖突

如果同時使用了MultipartResolver 和ServletFileUpload,就會在iter.hasNext()返回false.然后整個循環就跳出去了。

整個問題產生的原因是Spring框架先調用了MultipartResolver 來處理http multi-part的請求。這里http multipart的請求已經消耗掉。后面又交給ServletFileUpload ,那么ServletFileUpload 就獲取不到相應的multi-part請求。

1.首先spring boot默認會調用MultipartResolver

來處理http multi-part的請求,須在配置文件中把spring.http.multipart.enabled=false。這樣就不會默認調用MultipartResolver。

解決SpringBoot中MultipartResolver和ServletFileUpload的沖突問題

2.需要重寫一個MyMultipartResolver

重寫isMultipart方法

package dc.platform.admin.common.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
@Configuration
public class MyMultipartResolver extends CommonsMultipartResolver {

  /**
   * 這里是處理Multipart http的方法。如果這個返回值為true,那么Multipart http body就會MyMultipartResolver 消耗掉.如果這里返回false
   * 那么就會交給后面的自己寫的處理函數處理例如剛才ServletFileUpload 所在的函數
   * @see org.springframework.web.multipart.commons.CommonsMultipartResolver#isMultipart(javax.servlet.http.HttpServletRequest)
   */
  @Override
  public boolean isMultipart(HttpServletRequest request) {
      // 過濾金格生成文書保存的接口  兼容MultipartResolver 或者 ServletFileUpload
      if (request.getRequestURI().contains("mgt/document/upload")||request.getRequestURI().contains("/modules/document.html")) {
          return false;
      }
      return super.isMultipart(request);
  }
}

 

springMVC文件上傳時出現的“坑”―multipartResolver

首先,頁面代碼,這里是upload.jsp:

<form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data">
姓名:<input type="text" name="name">
文件:<input type="file" name="multipartFile">
提交: <input type="submit" value="提交">
</form>

然后,我們在pom文件中添加文件上傳用到的依賴文件:

<!--文件上傳依賴-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>

接著我們在spring-mvc.xml文件中配置文件上傳解析器:

<bean id="commonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--上傳文件總大小-->
<property name="maxUploadSize" value="54280"/>
<!--編碼方式-->
<property name="defaultEncoding" value="UTF-8"/>
<!--單個上傳的文件大小-->
<property name="maxUploadSizePerFile" value="54280"/>
</bean>

之后編寫了文件上傳代碼:

@RequestMapping("/upload")
@ResponseBody
public void upload(String name, MultipartFile multipartFile) throws IOException {
System.out.println(name);
String filename = multipartFile.getOriginalFilename();
multipartFile.transferTo(new File("F:\\"+filename));
}

這個時候你以為萬事大吉,可以成功運行的時候,驚喜出現了,頁面給你來一個500…

解決SpringBoot中MultipartResolver和ServletFileUpload的沖突問題

idea控制臺給你來個null

解決SpringBoot中MultipartResolver和ServletFileUpload的沖突問題

我把代碼從頭順了一遍始終沒找到我的錯,于是乎,有技術朋友是真好?。?!原來在文件解析器那里ID必須要配置為

multipartResolver

*哈哈,加粗是為了醒目~~~~*

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--上傳文件總大小-->
<property name="maxUploadSize" value="54280"/>
<!--編碼方式-->
<property name="defaultEncoding" value="UTF-8"/>
<!--單個上傳的文件大小-->
<property name="maxUploadSizePerFile" value="54280"/>
</bean>

大家千萬記得這個!

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/wmy_0707/article/details/84313488

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美久久久精品影院 | 香蕉在线精品亚洲第一区 | 国产香蕉视频在线观看 | 狠狠干快播 | 欧美jjvideo| 亚洲第一网色综合久久 | 亚洲六月丁香婷婷综合 | 高h文道具| 欧美靠逼视频 | 日本69视频在线观看 | 久久婷婷五月综合色丁香 | 韩剧消失的眼角膜免费完整版 | bb18lv黑料正能量 | 美女bbxx美女bbb | 精品国产爱久久 | 狠狠干奇米 | 欧美无专区 | 操女b| 欧美成人禁片在线观看俄罗斯 | 亚洲国产精品成人午夜在线观看 | 国产一区二区三区高清视频 | 91视频国产自拍 | 果冻传媒天美传媒乌鸦传媒 | 国产精品自产拍在线观看2019 | 日韩免费一级毛片 | 99热在线免费观看 | 特黄级| 国产美女做爰免费视频网址 | 啊皇上你好大要知画 | 欧美精品黑人巨大在线播放 | 秘书在办公室疯狂被hd | 国产精品久久久久久久免费大片 | 美女张开双腿让男人捅 | 91麻豆网址 | 日韩高清在线免费看 | 韩剧hd | 免费xxxx日本大片在线观看 | 色欲都市 | 午夜理伦片免费 | 丝袜老师好湿好紧我要进去了 | 91制片厂(果冻传媒)原档破解 |