Java 文件上传至leanCloud
首先,在Controller端入参设置为
@RequestParam(value = "file",defaultValue = "") MultipartFile file
然后在Service端输入以下代码
public BaseResult uploadFile(MultipartFile file) { Outbounds_Mobile.R2M_INT_005 response = new Outbounds_Mobile.R2M_INT_005(); AVOSCloud.initialize(globalProperties.leancloud_appid,globalProperties.leancloud_appkey,globalProperties.leancloud_masterkey); try { AVFile cloudFile = null; try { cloudFile = new AVFile(file.getName(),file.getBytes()); } catch (IOException e) { e.printStackTrace(); response.status = Config.Result_Error; response.message = e.getMessage(); } cloudFile.save(); response.url = cloudFile.getUrl(); response.objectId = cloudFile.getObjectId(); response.message = "成功"; } catch (AVException e) { e.printStackTrace(); response.status = Config.Result_Error; response.message = e.getMessage(); } return response; }
其中,在使用AVFile前一定要初始化,同时在properitier文件中设置
#uploadfile AVOSCloud.initialize roadrunner.leancloud_appid=kg1xLtsFrnf04rl2c98IzDhu-gzGzoHsz roadrunner.leancloud_appkey=rk4noFXig6I3Nsti6MjeqDva roadrunner.leancloud_masterkey=dI90B14c74XPtnIl1QNz8XmD
如果是使用gradle,在连接池中注入
compile("cn.leancloud:java-sdk:0.1.6") //LeanCloud上传所需SDK
compile("commons-fileupload:commons-fileupload:1.3.1") //文件上传
在测试这个接口时注意
1.form表单里设置 enctype 属性 enctype="multipart/form-data"。
2.如果用 postman 测试,应该选 form-data。
3.如果使用restClient ,使用multipart body。