小程序图片上传(前台+后台SpringBoot)

文件上传

前端小程序代码

wx.uploadFile({
  url: 'https://example.weixin.qq.com/upload', //示例,非真实的接口地址
  filePath: '/static/itstyle.mp3',//默认小程序内音频路径,也可以自己上传
  name: 'file',
  header: {
    "Content-Type": "multipart/form-data"
  },
  formData:
  {
    userId: 12 //附加信息
  },
  success: function (res) {
    console.log(res);
  },
  fail: function (res) {
    console.log(res);
  },
  complete: function (res) {

  }
})

后端上传代码

@Api(tags ="测试接口")
@RestController
@RequestMapping("/test")
public class TestController {

private final static Logger LOGGER = LoggerFactory.getLogger(WechatController.class);

@Value("${web.upload.path}")
private String uploadPath;

@ApiOperation(value="上传文件(小程序)")
@PostMapping("/fileUpload")
public String upload(HttpServletRequest request, @RequestParam("file")MultipartFile[] files){
    LOGGER.info("上传测试");
    //多文件上传
    if(files!=null && files.length>=1) {
        BufferedOutputStream bw = null;
        try {
            String fileName = files[0].getOriginalFilename();
            //判断是否有文件(实际生产中要判断是否是音频文件)
            if(StringUtils.isNoneBlank(fileName)) {
                //创建输出文件对象
                File outFile = new File(uploadPath + UUID.randomUUID().toString()+ FileUtil.getFileType(fileName));
                //拷贝文件到输出文件对象
                FileUtils.copyInputStreamToFile(files[0].getInputStream(), outFile);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if(bw!=null) {bw.close();}
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return "success";
}

微信公众号,欢迎扫码关注