service.kt
interface FileUploadService {
@Multipart
@PUT("/admin/upload/signature")
fun upload(
@Part file: MultipartBody.Part,
@Part(value = "num") num : RequestBody,
@Part(value = "user_num") user_num : RequestBody
) : Call<Boolean>
}
MainActivity.kt
var fileBody = RequestBody.create(MediaType.parse("image/png"),file);
var filePart = MultipartBody.Part.createFormData("file", file?.name, fileBody);
var file_num = RequestBody.create(MediaType.parse("text/plain"),num.toString())
var user_data = RequestBody.create(MediaType.parse("text/plain"),user_num.toString())
var call : Call<Boolean> = uploadService.upload(filePart,file_num,user_data)
이후 통신관련 코드는 call.enqueue를 사용하는 방식으로 생략했습니다.
server
Controller.java
@RequestMapping(value = "/admin/upload/signature", method = RequestMethod.PUT, consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
어노테이션 값에 consumes = {MediaType.MULTIPART_FORM_DATA_VALUE} 추가 된것 외에는 특별히 다른 부분은 없지만
값을 Object가 아닌 단일 값으로 받으려면 @Part 어노테이션을 이용해 사용이 가능합니다.
'MVC 게시판' 카테고리의 다른 글
[Springboot + JPA] QueryDSL 셋팅법 (0) | 2023.12.04 |
---|---|
[Spring boot] Rest API 전송 크기 설정 (0) | 2023.04.12 |
view 화면을 file로 저장하기 (0) | 2022.09.30 |
Mybatis Mapper.xml 사용하기 (0) | 2022.08.11 |
Oauth 카카오로그인 웹 (0) | 2022.01.10 |