为什么uploadFile好像传不了文件到后台?
前端调用代码
selectImg: function(e){ var that=this wx.chooseImage({ count: 3, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success(res) { const tempFilePaths = res.tempFilePaths console.log(tempFilePaths) that.setData({ imgUrl: tempFilePaths }) wx.uploadFile({ url: app.serverUrl+"/upload/XZImg?openid="+app.openID, //仅为示例,非真实的接口地址 filePath: tempFilePaths[0], name: 'files', success(res) { const data = res.data //do something console.log(data) }, }) } }) |
后端代码
@RestController@RequestMapping("/upload")public class uploadImage { @PostMapping("/XZImg") public void uploadFace(String openid, @RequestParam("files") MultipartFile[] files ) throws Exception { System.out.println(openid); if (StringUtils.isNotBlank(openid)) { // 文件保存的命名空间 String fileSpace = "C:/Users/Administrator/ssm_images"; // 保存到数据库中的相对路径 String uploadPathDB = "/" + openid; System.out.println(uploadPathDB); FileOutputStream fileOutputStream = null; InputStream inputStream = null; try { if (files != null &&files.length>0) { System.out.println(files); String fileName = files[0].getOriginalFilename(); if (StringUtils.isNotBlank(fileName)) { // 文件上传的最终保存路径 String finalFacePath = fileSpace + uploadPathDB + "/" + fileName; // 设置数据库保存的路径 uploadPathDB += ("/" + fileName); File outFile = new File(finalFacePath); if (outFile.getParentFile() != null || !outFile.getParentFile().isDirectory()) { // 创建父文件夹 outFile.getParentFile().mkdirs(); } fileOutputStream = new FileOutputStream(outFile); inputStream = files[0].getInputStream(); IOUtils.copy(inputStream, fileOutputStream); } } } catch (Exception e) { e.printStackTrace(); } finally { if (fileOutputStream != null) { fileOutputStream.flush(); fileOutputStream.close(); } } } }} |
一直进不去啊,用HttpServltRequest看请求体参数files是null。是哪里出问题了呢?好像文件根本就没传过去,都是null
