//必须使用LinkedHashMap,保证文件按顺序上传
Map params=new LinkedHashMap<>();
File file1=new File(Environment.getExternalStorageDirectory(),"测试01.jpg");
RequestBody filebody1 =RequestBody.create(MediaType.parse("multipart/form-data"), file1);
//记录文件上传进度
CountingRequestBody countingRequestBody1=new CountingRequestBody(filebody1, new CountingRequestBody.Listener() {
@Override
public void onRequestProgress(long bytesWritten, long contentLength) {
Log.e(TAG,"file1:"+contentLength+":"+bytesWritten);
}
});
//file代表服务器接收到的key,file1.getName()代表文件名
params.put("file\";filename=\""+file1.getName(),countingRequestBody1);
File file2=new File(Environment.getExternalStorageDirectory(),"girl.jpg");
RequestBody filebody2 =RequestBody.create(MediaType.parse("multipart/form-data"), file2);
CountingRequestBody countingRequestBody2=new CountingRequestBody(filebody2, new CountingRequestBody.Listener() {
@Override
public void onRequestProgress(long bytesWritten, long contentLength) {
Log.e(TAG,"file2:"+contentLength+":"+bytesWritten);
}
});
params.put("file\";filename=\""+file2.getName(),countingRequestBody2);
File file3=new File(Environment.getExternalStorageDirectory(),"测试02.jpg");
RequestBody filebody3 =RequestBody.create(MediaType.parse("multipart/form-data"), file3);
CountingRequestBody countingRequestBody3=new CountingRequestBody(filebody3, new CountingRequestBody.Listener() {
@Override
public void onRequestProgress(long bytesWritten, long contentLength) {
Log.e(TAG,"file3:"+contentLength+":"+bytesWritten);
}
});
params.put("file\";filename=\""+file3.getName(),countingRequestBody3);
//普通key/value
params.put("username", RequestBody.create(
MediaType.parse("multipart/form-data"), "jim"));
params.put("address", RequestBody.create(
MediaType.parse("multipart/form-data"), "天津市"));
Call userCall=myService.uploads(params);
userCall.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Log.e(TAG, getResponsString(response.body()));
}
@Override
public void onFailure(Call call, Throwable t) {
Log.e(TAG, t.getMessage());
}
});
|