【发布时间】:2021-12-30 14:57:37
【问题描述】:
我正在尝试将图像上传到应该以“标准方式”接受文件的 http 服务器,无论这意味着什么。我将互联网上的大量示例(每个示例都只完成我想要的一小部分)合并到这个解决方案中。
'srcBitmap' is a byteArray containing the JPG data.
val response: HttpResponse = httpClient.submitFormWithBinaryData(
url = URLUploadFile,
formData = formData {
append("bitmapName", "image.jpg")
append("image", srcBitmap, Headers.build {
append(HttpHeaders.ContentType, "image/jpg")
append(HttpHeaders.ContentDisposition, "filename=image.jpg")
})
},
block = {
headers {
append(HttpHeaders.ContentType, contentTypeString)
append(HttpHeaders.CacheControl, "no-cache")
append("my-app-authtoken", PREFKEY_AUTHTOKEN)
append("my-app-id", PREFKEY_USERID)
}
contentType(ContentType.Application.Json)
body = jsonBody.toString()
})
主要的“body”部分是一些在 'block' 参数中传递的 json。这些数据正按预期安全到达。
但是图像本身的二进制数据要么没有显示在服务器端,要么被服务器忽略,因为我没有正确设置一些“关键”值。
这是使用 Ktor 上传文件的正确方法吗?如果没有,我做错了什么?
【问题讨论】:
标签: android android-studio kotlin http ktor