首页 > 解决方案 > 如何使用带有输入流的图像 URI - 使用 OkHttp 上传图像

问题描述

我对 Android 有点陌生,而且我已经尝试解决这个问题好几天了,但我无法让它工作。我需要一个用户从图库中选择一张图片,我需要通过 OkHttp 将图片上传到服务器。

在用户使用以下代码从图库中选择图像后,我检索 URI:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(resultCode == Activity.RESULT_OK && requestCode == PICK_IMAGE_REQUEST_CODE && data!!.data != null){
                mSelectedImageFileUri = data.data
     }
}

然后我使用inputStream并将值传递给requestBodyOkHttp。我仍然收到错误File not found. No such File or Directory.

val inputStream: InputStream? = contentResolver.openInputStream(mSelectedImageFileUri!!)

OkHttp 代码:

val requestBody = MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("title","Image Picture")
        .addFormDataPart("image","file-name.jpg",File("${inputStream}").asRequestBody(MEDIA_TYPE_JPG))
        .build()

有人可以帮帮我吗?我真的很感激!

标签: kotlinfile-uploadinputstreammultipartform-dataokhttp

解决方案


推荐阅读