개조 2.0을 @MultiPart 포스트를 사용할 수 있습니다 + OkHttp 3
인터페이스 선언 :
@POST("postpath")
Call<Void> upload(@Body MultipartBody filePart);
만들기 MultiPartBody
:
각 파일에 대한 다음
MultipartBody.Builder requestBodyBuilder = new MultipartBody.Builder()
.setType(MultipartBody.FORM);
(당신은 또한 사용자 정의 필드를 추가 할 수 있습니다)
requestBodyBuilder.addFormDataPart("extraImage[]", "photo.jpg",
RequestBody.create(MediaType.parse("image/jpeg"), byteArrayOrFile));
마지막
api.upload(requestBodyBuilder.build());
P.S. 당신은
requestBodyBuilder.addFormDataPart("client[name]", null, RequestBody.create(MediaType.parse("text/plain"), name))
또는
requestBodyBuilder.addFormDataPart("client[name]", name))
개조와 같은 형태로 1.9 (예 client.name
에 대한) 사용자 지정 양식 필드를 추가 할 수 있습니다 : 당신은 다중의 변수 번호를 게시 할 MultipartTypedOutput을 사용할 수 있습니다
-part 매개 변수.
@POST("/postpath")
SomeResponse upload(@Body MultipartTypedOutput output);
:
프랑수아 '대답에 추가
, 같은/개조에 (배열로) 필드 이름을 반복하면 MultipartTypedOutput
방법 서명 사용할 수 있습니다 여러 이미지를 게시하려면
사용법 :
MultipartTypedOutput multipartTypedOutput = new MultipartTypedOutput();
multipartTypedOutput.addPart("mainImage", new TypedFile("image/jpeg", mainImage));
multipartTypedOutput.addPart("extraImage[]", new TypedFile("image/jpeg", file1));
multipartTypedOutput.addPart("extraImage[]", new TypedFile("image/jpeg", file2));
upload(multipartTypedOutput);
S quare brackets
일부 서버 측 프레임 워크 (레일)에는 일반적으로 대괄호가 필요합니다. extraImage
대신 extraImage[]
), 다른 것들은 (스프링 MVC) 않습니다.
하나의 이미지를 추가하기 위해 지금 사용하고있는 것들의 예가 있습니까? – kabuto178
'@ Part' 매개 변수를 메소드에 추가하기 만하면됩니다. 당신은 이미 올바른 길을 가고 있습니다. –
그러나 ArrayList 어댑터에서 @Part로 이미지를 동적으로 추가하는 방법은 무엇입니까? @Part ("image")로 ArrayList 이미지가 파일을 게시하지 않습니다. –
mahsanq