Android xutils3工具上传文件非常方便,只需要传入File文件数据或一些其它参数给RequestParams对象即可完成,现在我们来开始使用xutils工具上传文件吧!
步骤一:需要在项目的build.gradle里面引入xutils 3这个工具,代码如下:
implementation 'org.xutils:xutils:3.6.19'
步骤二:传递附带的参数和文件数据即可,代码如下:
RequestParams params = new RequestParams(UserLoginDialog.BASE_URL+"/api/uploadVoice"); params.setMultipart(true); //携带的一些额外参数 params.addBodyParameter("jsonStr", json); //需要上传的文件 params.addBodyParameter("file", new File(voice_url)); x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { //上传成功返回结果,需要后台返回JSON字符串数据 } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });
当然了,RequestParams的addBodyParameter中的name如“jsonStr”以及“file”需要对应后台中的参数,例如下面这样:
@RequestMapping(value="/uploadVoice",method=RequestMethod.POST) @ResponseBody public String upload(@RequestParam("jsonStr")String jsonStr,@RequestParam("file") MultipartFile file,HttpServletRequest request) throws IOException{ System.out.println("接收的数据:"+jsonStr); //中间省略..... Message_txt msg = new Message_txt(); return JSON.toJSONString(msg); }
这样就可以实现Xutils工具的上传文件功能了!