gpt4 book ai didi

java - 在 WebSphere Liberty 上工作时的 Spring mvc 多文件上传

转载 作者:搜寻专家 更新时间:2023-11-01 02:19:34 24 4
gpt4 key购买 nike

我在尝试使用 ajax 上传多个文件时遇到了一个奇怪的问题。为什么我们使用 Ajax 上传多个文件?因为用户想要查看他/她试图上传到服务器的所有文件。审查的意思是,应该允许用户在上传到服务器之前删除文件。

到目前为止我尝试了什么?

JSP

<form id="form1" method="post" action="uploadMultipleFiles" enctype="multipart/form-data">
<!-- File input -->
<input name="file" id="files" type="file" multiple="multiple"/><br/>
<button value="Submit" onclick="uploadFiles()" >Upload</button><i>upload</i>
</form>

JS

function uploadFiles(){
var files = $("#files").prop("files");
var oMyForm = new FormData();
oMyForm.append("file", files[0]); //currently trying with only one file
$.ajax({
url: 'uploadMultipleFiles',
data: oMyForm,
// dataType: 'text',
processData: false,
contentType: false,
type: 'POST',
success: function(data){
console.log(data)
}
});
}

Spring Controller(版本 3.0.0 发布)

@RequestMapping(value = "/uploadMultipleFiles", method = RequestMethod.POST)
public @ResponseBody String uploadMultipleFilesHandler(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
System.out.println(multipartRequest);
}

我没有包含 Controller 的完整代码,但我相信它应该足以满足您提供的任何指针。

Spring bean配置

<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property name="maxUploadSize" value="900000" />

</bean>

异常

java.lang.ClassCastException: com.ibm.ws.webcontainer31.srt.SRTServletRequest31 无法转换为 org.springframework.web.multipart.MultipartHttpServletRequest

请帮我弄清楚我可以做些什么来解决这个异常,请注意相同的代码在 tomcat 中工作,但是 WebSphere Liberty 配置文件似乎有一些问题。

最佳答案

您可以尝试使用 org.springframework.web.multipart.MultipartFile。我在常规 WAS 7 中使用 MultipartFile 上传多个文件时遇到问题修复它。

例子:

 public @ResponseBody String uploadMultipleFilesHandler(@RequestPart(value="files")List<MultipartFile> attachments, HttpServletRequest request, HttpServletResponse response)

关于java - 在 WebSphere Liberty 上工作时的 Spring mvc 多文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51484738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com