是的,有一种方法,而且也很简单!
我自己也遇到了同样的问题。尽管我不满意Sam Brannen的回答,但似乎Spring
MVC现在支持PUT文件上传,因为我可以简单地使用Postman发出这样的请求(我使用的是Spring Boot
1.4.2)。因此,我一直在挖掘,发现唯一的问题是事实所
MockMultipartHttpServletRequestBuilder返回
MockMvcRequestBuilders.fileUpload()的方法将方法硬编码为“
POST”。然后我发现了
with()方法…
这使我想出了这个巧妙的小窍门,以强制
MockMultipartHttpServletRequestBuilder无论如何都要使用“ PUT”方法:
MockMultipartFile file = new MockMultipartFile("data", "dummy.csv", "text/plain", "Some dataset...".getBytes()); MockMultipartHttpServletRequestBuilder builder = MockMvcRequestBuilders.fileUpload("/test1/datasets/set1"); builder.with(new RequestPostProcessor() { @Override public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) { request.setMethod("PUT"); return request; } }); mvc.perform(builder .file(file)) .andExpect(status().ok());奇迹般有效!



