kotlin - 如何使用带有输入流的图像 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
并将值传递给requestBody
OkHttp。我仍然收到错误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()
有人可以帮帮我吗?我真的很感激!
解决方案
推荐阅读
- php - 用于在 Web 浏览器中打开 pdf、docx、doc、xls 的 HTTP 标头 Content-Type
- azure-functions - 使用 Azure Python 函数和托管标识从存储帐户下载
- python - 在 MacO 和 Linux 上安装 win32com
- prolog - 使用 Prolog 证明谋杀发生
- excel - 从具有给定范围内的数字的列中对一行中的单元格求和
- vbscript - 在 vbscript 中使用 Regexp.Execute 时出现错误
- c# - QuickFix/N 在新会话登录时注销其他连接
- flutter - 如何在 ListView.Builder 中右对齐卡片中的行?
- nfc - App Clip 是否有公开的 NFC 规范?
- docker - Docker-compose 构建真的很慢