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()