Yehonatan Levi
05/15/2021, 10:26 AMMichael
05/15/2021, 10:48 AMYehonatan Levi
05/15/2021, 10:49 AMYehonatan Levi
05/15/2021, 10:50 AMMichael
05/15/2021, 10:55 AMMichael
05/15/2021, 10:55 AMsuspend fun uploadFile(
conversationId: Long,
input: FileInput,
): Unit = resources.httpClient.put {
conversationUrl(conversationId) {
safePath("files")
}
val bytes = input.input.toByteArray()
val data = formData {
append("type", input.fileType.name)
// The name header needs to be present for ktor to recognize it as a file
append("file", bytes, headersOf(HttpHeaders.ContentDisposition, "filename=upload.file"))
}
body = MultiPartFormDataContent(data)
}
Michael
05/15/2021, 10:57 AMYehonatan Levi
05/15/2021, 10:58 AMYehonatan Levi
05/15/2021, 10:58 AMMichael
05/15/2021, 10:58 AMYehonatan Levi
05/15/2021, 10:59 AMYehonatan Levi
05/15/2021, 10:59 AMYehonatan Levi
05/15/2021, 10:59 AMMichael
05/15/2021, 10:59 AMYehonatan Levi
05/15/2021, 10:59 AMclient.put<HttpResponse>(writeUrl) {
body = MultiPartFormDataContent(formData {
append("image", bitmapFile.readBytes(), Headers.build {
append(HttpHeaders.ContentType, "image/png")
append(HttpHeaders.ContentDisposition, "filename=${bitmapFile.name}.png")
})
})
Michael
05/15/2021, 11:00 AMMichael
05/15/2021, 11:00 AMYehonatan Levi
05/15/2021, 11:01 AMYehonatan Levi
05/15/2021, 11:01 AMMichael
05/15/2021, 11:02 AMYehonatan Levi
05/15/2021, 11:03 AMYehonatan Levi
05/15/2021, 11:03 AMYehonatan Levi
05/15/2021, 11:16 AMYehonatan Levi
05/15/2021, 11:17 AMYehonatan Levi
05/15/2021, 11:17 AMYehonatan Levi
05/15/2021, 11:28 AMval request = Request.Builder()
.url(httpUrl)
.put(bitmapFile.asRequestBody("image/png".toMediaType()))
.build()