Android - Error Retrofit多个文件上传



我试图将多个文件上传到php支持的服务器,我正面临以下错误。如果你能帮忙的话,我会很感激的。

FATAL EXCEPTION: main
Process: com.app.link, PID: 22253
java.lang.IllegalArgumentException: @Part annotation must supply a name or use MultipartBody.Part parameter type. (parameter #2)
for method FileUploadService.upload

这是我的接口类

public interface FileUploadService {
@Multipart
@POST("MultiPartUpload.php")
Call<ResponseBody> upload(
@Part("description") RequestBody description,
@Part List<MultipartBody.Part> file);
}

这是上传方法

private void uploadFiles(List<Uri> fileUris){
List<MultipartBody.Part> parts = new ArrayList<>();
Integer fileSize = fileUris.size();
for(int i = 0;i<fileSize;i++)
{
if (fileUris.get(i) != null) {
parts.add(prepareFilePart("file"+i, fileUris.get(i)));
}
}
RequestBody description = createPartFromString("this is description");
FileUploadService service = ServiceGenerator.createService(FileUploadService.class);
Retrofit.Builder builder =  new Retrofit.Builder()
.baseUrl("http://192.168.1.5/RestApi/")
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
FileUploadService client = retrofit.create(FileUploadService.class);
Call<ResponseBody> call = client.upload(description,parts);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {

}
});
}

在我升级到最新版本(2.9.0)后,这个问题得到了解决。

相关内容

最新更新