保证你ssm环境可以运行的jar包之外还需要加入如下的两个jar包,commons-fileupload-1.3.jar、commons-io-1.2.jar
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.2</version> </dependency>我因为要更新用户的头像,所以将用户id一起传过去
function testUpload(){ var form = new FormData(); form.append('id',${imgUser.data.userId}); form.append('file',$("#file")[0].files[0]); $.ajax({ url:"/u/img", data:form, type:"POST", processData:false, contentType:false, success : function(result){ if(result.status==200){ alert("成功") }else{ alert(result.msg); } }, }); }:
@PostMapping("/u/img") @ResponseBody public E3Result test(MultipartFile file,HttpServletRequest request,long id) throws IOException{ String path = request.getSession().getServletContext().getRealPath("/images"); System.out.println("路径:"+path); String fileName = file.getOriginalFilename(); System.out.println("文件名称"+fileName); File dir = new File(path, fileName); System.out.println("判断目录是否存在:"+dir.exists()); if(!dir.exists()){ dir.mkdirs(); } // MultipartFile自带的解析方法 file.transferTo(dir); //这里我在拼接出我图片要显示的url String imageurl = "http://localhost:8089/images/"+fileName; //将数据库中信息更新 BUsers bUser = new BUsers(); bUser.setUserId(id); bUser.setUserProfilePhoto(imageurl); E3Result result = getUserInfoService.updateUser(bUser); //返回结果 return result; }图片在你的tomcat 的webapps下的images目录里面