Android 上传文件与改造2

Android 上传文件与改造2,android,file-upload,retrofit,retrofit2,Android,File Upload,Retrofit,Retrofit2,我试着做了几天,我真的做了一切。。 以下是Postman中请求的外观: 我确信,所有GET参数都正确写入。我想,我如何发送文件上传的问题 Map<String, RequestBody> map = new HashMap<>(); File file = new File("/storage/emulated/0/ConstructSecure/d1940b05-76d1-4d98-b4b4-b04b8247c8cb.

我试着做了几天,我真的做了一切。。 以下是Postman中请求的外观:

我确信,所有GET参数都正确写入。我想,我如何发送文件上传的问题

            Map<String, RequestBody> map = new HashMap<>();
            File file = new File("/storage/emulated/0/ConstructSecure/d1940b05-76d1-4d98-b4b4-b04b8247c8cb.png");
            RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file);
            String fileName = file.getName();
            map.put("attachment\"; filename=\"" + fileName + "\"", requestBody);

            //GET parameters
            Map<String, String> params = new HashMap<String, String>();
            params.put("inspectionUUID", inspectionUUID);
            params.put("noteUUID", noteUUID);
            params.put("attachmentUUID", attachmentUUID);
            params.put("noteType", noteType);
            params.put("modifiedTime", modifiedTime);

            Call<ResponseBody> call = service.upload(access_token,params,map);
            call.enqueue()....
Map Map=newhashmap();
File File=新文件(“/storage/emulated/0/ConstructSecure/d1940b05-76d1-4d98-b4b4-b04b8247c8cb.png”);
RequestBody RequestBody=RequestBody.create(MediaType.parse(“image/png”),文件);
字符串文件名=file.getName();
put(“附件\”文件名=\“”+文件名+“\”,requestBody);
//获取参数
Map params=新的HashMap();
参数put(“inspectionUUID”,inspectionUUID);
参数put(“noteuid”,noteuid);
参数put(“attachmentUUID”,attachmentUUID);
参数put(“noteType”,noteType);
参数put(“modifiedTime”,modifiedTime);
Call Call=service.upload(访问令牌、参数、映射);
call.enqueue()。。。。
接口:

@Multipart
    @POST("api/MediaFiles/AddMediaFile")
    Call<ResponseBody> upload(
            @Header("Authorization") String authorization,
            /* GET params */ @QueryMap Map<String, String> params,
            @PartMap Map<String, RequestBody> map
    );
 @POST("api/MediaFiles/AddMediaFile")
    Call<ResponseBody> upload(
            @Header("Authorization") String authorization,@Header("Content-Disposition") String content_disposition, @Body RequestBody photo,
            /* GET params */ @QueryMap Map<String, String> params
    );
@Multipart
@POST(“api/MediaFiles/AddMediaFile”)
呼叫上传(
@标题(“授权”)字符串授权,
/*获取参数*/@QueryMap-params,
@零件图
);

有人能帮我吗?

我花了很多时间来搜索,如何以字节流的形式发送文件,因为web中的所有答案都是通过RequestBody上传的,但这对我的案例不起作用。 因此,以下是解决方案:

InputStream in = new FileInputStream(file);
    byte[] buf = new byte[in.available()];
    while (in.read(buf) != -1) ;
    RequestBody requestBodyByte = RequestBody
            .create(MediaType.parse("application/octet-stream"), buf);
    String content_disposition = "attachment; filename=\"" + fileName + "\"";

    //GET parameters
    Map<String, String> params = new HashMap<String, String>();
    params.put("inspectionUUID", inspectionUUID);
    params.put("noteUUID", noteUUID);
    params.put("attachmentUUID", attachmentUUID);
    params.put("noteType", noteType);
    params.put("modifiedTime", modifiedTime);

    Call<ResponseBody> call = service.upload(access_token, content_disposition, requestBodyByte, params);
InputStream in=新文件InputStream(文件);
byte[]buf=新字节[in.available()];
while(in.read(buf)!=-1);
RequestBody requestBodyByte=RequestBody
.create(MediaType.parse(“应用程序/八位字节流”),buf;
字符串内容\u disposition=“附件;文件名=\“”+文件名+\“”;
//获取参数
Map params=新的HashMap();
参数put(“inspectionUUID”,inspectionUUID);
参数put(“noteuid”,noteuid);
参数put(“attachmentUUID”,attachmentUUID);
参数put(“noteType”,noteType);
参数put(“modifiedTime”,modifiedTime);
Call Call=service.upload(访问令牌、内容处置、requestBodyByte、参数);
接口:

@Multipart
    @POST("api/MediaFiles/AddMediaFile")
    Call<ResponseBody> upload(
            @Header("Authorization") String authorization,
            /* GET params */ @QueryMap Map<String, String> params,
            @PartMap Map<String, RequestBody> map
    );
 @POST("api/MediaFiles/AddMediaFile")
    Call<ResponseBody> upload(
            @Header("Authorization") String authorization,@Header("Content-Disposition") String content_disposition, @Body RequestBody photo,
            /* GET params */ @QueryMap Map<String, String> params
    );
@POST(“api/MediaFiles/AddMediaFile”)
呼叫上传(
@标题(“授权”)字符串授权、@Header(“内容处置”)字符串内容处置、@Body RequestBody photo、,
/*获取参数*/@QueryMap-params
);

上传图片请参见此处单击此链接

导入改型2.改型;
进口改装2.converter.gson.GsonConverterFactory;
类AppConfig{
私有静态字符串BASE_URL=”http://mushtaq.16mb.com/";
静态改装GetRefundation(){
返回新的改装.Builder()
.baseUrl(AppConfig.BASE\u URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
}
========================================================
导入okhttp3.MultipartBody;
导入okhttp3.RequestBody;
2.电话;;
导入文件2.http.Multipart;
导入文件2.http.POST;
导入2.http.Part;
接口ApiConfig{
@多部分
@POST(“改装示例/upload\u image.php”)
调用uploadFile(@Part MultipartBody.Part file,
@部分(“文件”)请求主体名称);
/*@多部分
@POST(“图像上传”)
调用uploadFile(@Part MultipartBody.Part file,
@部分(“文件”)请求主体名称)*/
@多部分
@POST(“改装示例/upload\u multiple\u files.php”)
调用uploadMulFile(@Part MultipartBody.Part file1,
@部分多部分主体。部分文件2);
}
https://drive.google.com/open?id=0BzBKpZ4nzNzUMnJfaklVVTJkWEk

如果我需要在一次API命中中发送多个文件,该怎么办。