场景:
上传方式jsp:
<input type="file" id="uploadFile" name="uploadFile"/>
<input id="uploadFiles" type="button" value="导入" class="btn-dlys cur mr10">
js代码段:
//excel数据导入 $('#uploadFiles').on('click', function () { var content = $('#uploadFile')[0].files[0]; if (content == undefined) { layer.msg("未选则导入数据的文件!"); return; } var formData = new FormData(); formData.append('uploadFile', content); $.ajax({ // 后台接收数据地址 url: '/data/***/***/uploadFileAndRecord', data: formData, type: "POST", dataType: "json", cache: false, //上传文件无需缓存 processData: false, //用于对data参数进行序列化处理 这里必须false contentType: false, success: function (result) { if(result.status=='success'){ layer.msg(result.msg, { time: 3000, end: function () { layer.close(); } }); }else{ layer.alert(result.msg, { end: function () { layer.close(); } }); } } }) });
控制层Controller代码段:
@RequestMapping(value = "/uploadFileAndRecord", method = RequestMethod.POST) @ResponseBody public AjaxResult uploadFileAndRecord(@RequestParam(value = "uploadFile") MultipartFile file, HttpSession session) throws Exception { boolean isOk = FileUtil.checkFileSize(file); if (!isOk) { return AjaxResult.error("文件过大,上传失败!"); } String fileName = file.getOriginalFilename(); //校验上传的文件格式 AjaxResult ar = FileUtil.checkFileFormat("2", fileName); if ("fail".equals(ar.getStatus())) { return ar; } fileName = fileName.replaceAll("\\s*", ""); InputStream inputStream = file.getInputStream();
......
......
异常信息:
Maximum upload size of 5242880 bytes exceeded; nested exception is org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (9235958) exceeds the configured maximum
......
......
解决方式:修改spring-mvc.xml 文件中的 配置,使得符合条件,或者在后台编码中,给出提示。
<!-- 文件上传配置 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"/> <property name="maxInMemorySize" value="10240"/> <!-- 最大文件大小,单位字节,-1为不限制大小 默认限制6M--> <property name="maxUploadSize" value="6291456"/> </bean>