Java 文件上传 MultipartFile与ServletFileUpload
参考这个:https://www.cnblogs.com/liuyangv/p/8298997.html? Java文件上传 MultipartFile1.?配置MultipartResolver ? defaultEncoding="UTF-8"? ? ? ? ? ? ? ?是请求的编码格式,默认为iso-8859-1 2.前台表单 1 <form enctype="multipart/form-data" id="J_uploadLocalImgForm" method="post"> 2 <input type="hidden" name="authVenderId"> 3 <input type="file" class="hide" id="J_uploadLocalImgFile" name="multipartFile" multiple=""> 4 </form> input 标签上写上multiple? ?这个时候就可以选择多个文件进行上传,去掉就不支持多选了 3. js 控制验证上传文件格式? 一般的话 可能直接就再js中以什么结尾来判断格式,但这样是不准确的,如果文件的后缀被改掉呢? 如果你对文件格式要求严格的话,那最好在后台做一个比较严谨的验证。 var urlType = urlStr.substring(urlStr.lastIndexOf(".") + 1,urlStr.length); urlType = urlType.toLowerCase(); if (urlType == "jpg" || urlType == "png" || urlType == "jpeg" || urlType == "gif" || urlType == "bmp") {} 4.java代码 Controller层 /** * 本地图片上传 * @param multipartFile multipartFiles * @return CallbackResult<String> */ @RequestMapping("/multipleUploadWatermarkImg") public @ResponseBody CallbackResult<?> multipleUploadWatermarkImg(@RequestBody MultipartFile[] multipartFile){ return service.multipleUploadWatermarkImg(multipartFile); } 这里有个地方,MultipartFile 后面加的这个[ ] 代表数组嘛,支持多个文件上传,如果就是单个文件的话,去掉就可以了,和前面前台是对应的 Service层这里就不写了,就是对multipartFile文件进行处理,如果是多个文件就先循环在处理,这里写几个MultipartFile的方法
这里的transferTo 很好用的,直接可以把文件保存到制定路径? ??multipartFile.transferTo(new File(path))?? ServletFileUpload与MultipartFile冲突的问题问题是俩个同时存在,其中一个使用时会获取不到上传文件,网上有人给出了解决方法,不过我没有去验证, http://www.itkeyword.com/doc/8187524065876327482/ServletFileUpload-MultipartResolver-javaSpring ? 这里还有一个我遇到的小问题,当上传文件过大时该怎么办? https://bbs.csdn.net/topics/392015065?locationNum=9&fps=1 这里有人给了个捕获异常的方法,但是我觉得有点太麻烦了,如果允许的话不如在前台进行判断 uploadLocalImgFile : function(e) { var file = e.target.files[0]; if(file.type == "image/png" || file.type == "image/jpeg" || file.type == "image/jpg" || file.type == "image/gif"){ if(file.size > 1024 * 1024){ swal("上传图片的大小不能超过1M","","warning"); return false; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |