后台代码:
@RequestMapping(value = "/upload")
public JSONObject fileUpload(HttpServletRequest request) {
JSONObject resultJson = new JSONObject();
try {
String fileName=null;
List<FileItem> fileItemList = parseFileItemListFromRequest(request);
if (fileItemList != null && fileItemList.size() != 0) {
FileItem fileItem = fileItemList.get(0);
InputStream is= fileItem.getInputStream();
fileName=fileItem.getName();
System.out.println("**********文件名称:"+fileName);
List<List<String>> list= ExcelUtil.getListByExcel(is, fileItem.getName());
System.out.println("**********Excel数据有"+list.size()+"条**********");
System.out.println(JSON.toJSONString(list));
//row=saveUserInfoList(list);
System.out.println("*************"+"加载完毕"+"*************");
}
} catch (Exception e) {
resultJson.put("statusCode", 300);
logger.error(e.getMessage());
resultJson.put("message", "文件上传失败");
}
return resultJson;
}
发现在springMvc配置文件中,有一段下面配置:
<!-- 配置多请求数据类型,如json xml-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 以字节为单位的最大上传文件的大小 -->
<property name="maxUploadSize" value="10000000" />
</bean>
把这个配置删除测试发现问题解决。
还可以这样解决:保留配置,使用如下的方式
@RequestMapping(value = "/upload")
public JSONObject fileUpload(HttpServletRequest request) {
JSONObject resultJson = new JSONObject();
try {
String fileName=null;
//将request强转,因为拦截过后request的实际类型是DefaultMultipartHttpServletRequest
DefaultMultipartHttpServletRequest fileRequest = (DefaultMultipartHttpServletRequest)request;
//获取文件Map
MultiValueMap<String, MultipartFile> fileMap = fileRequest.getMultiFileMap();
//遍历所有的文件,每个List<MultipartFile>代表一个文件,get(0)就可以了
for(Map.Entry<String, List<MultipartFile>> entry : fileMap.entrySet()) {
List<MultipartFile> value = entry.getValue();
MultipartFile multipartFile = value.get(0);
try {
InputStream is= multipartFile.getInputStream();
System.out.println("**********Excel file mane:"+multipartFile.getOriginalFilename()+"**********");
List<List<String>> list= ExcelUtil.getListByExcel(is, multipartFile.getOriginalFilename());
System.out.println("**********Excel数据有"+list.size()+"条**********");
System.out.println(JSON.toJSONString(list));
//row=saveUserInfoList(list);
System.out.println("*************"+"加载完毕"+"*************");
} catch (IOException e) {
e.printStackTrace();
}
}
//文件成功上传到七牛云后就删除服务器上的mp3
/*File file = new File(filePath);
if(file.exists()){
file.delete();
}*/
} catch (Exception e) {
resultJson.put("statusCode", 300);
logger.error(e.getMessage(),e);
resultJson.put("message", "文件上传失败");
}
return resultJson;
}