Controller:
@RequestMapping(value = "/upload")
@ResponseBody
public String uploadKxf(MultipartFile file) {
LOGGER.debug("uploadKxf:" + file.getSize());
try {
File tmp = new File("d:/logs/", file.getOriginalFilename());
file.transferTo(tmp);
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
}
return Result.ok("sss");
}
activity:
private void uploadImg() { File file = new File("storage/emulated/0/DCIM/Camera/IMG20160822143525.jpg"); OkHttpClient okHttpClient = OkHttpUtils.getOkHttpClient(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://192.168.1.3:8080/") .addConverterFactory(new ToStringConverterFactory()).client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) //Gson .build(); OtherServierApi request = retrofit.create(OtherServierApi.class); // create RequestBody instance from file RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile); Call<String> call= request.upImg(body); call.enqueue(new Callback<String>() { @Override public void onResponse(Call<String> call, Response<String> response) { Log.e("log","response:"+ response.body() ); } @Override public void onFailure(Call<String> call, Throwable t) { Log.e("log","Throwable:"+ t.getMessage() ); } }); }
OtherServierApi:
@Multipart @POST("merchant/upload.do") Call<String> upImg(@Part MultipartBody.Part file);
本文介绍了一个使用Java实现的文件上传接口及Android客户端通过Retrofit调用该接口上传图片的具体实现过程。Controller中定义了处理文件上传请求的方法,接收multipart格式的文件,并将其保存到指定目录。Android客户端部分则展示了如何创建Retrofit实例并发送带有文件的multipart请求。
2393

被折叠的 条评论
为什么被折叠?



