android - 如何在 kotlin 中使用 http 请求将图像上传到服务器?

我用kotlin写了上传图片到服务器的代码,就是用户通过摄像头拍照然后在用户点击发送按钮的时候将图片显示在imageView中,我希望ImageView中的图片是发送到服务器,但我不知道如何将 ImageView 中的图像更改为可以发送到服务器的文件。

我设计了代码来捕获图像并在 ImageView 中设置图像以进行预览,但没有想到使用 http 请求将其上传到服务器。

用于打开相机并将图像设置到 ImageView 中:

private fun openCamera(){

    val values = ContentValues()

    values.put(MediaStore.Images.Media.TITLE, "New Picture")

    values.put(MediaStore.Images.Media.DESCRIPTION, "From Camera")

    private fun openCamera() {
    val values = ContentValues()
    values.put(MediaStore.Images.Media.TITLE, "New Picture")
    values.put(MediaStore.Images.Media.DESCRIPTION, "From Camera")
    image_uri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)

    val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, image_uri)
    startActivityForResult(cameraIntent, IMAGE_CAPTURE_CODE)
}

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {

    when (requestCode) {
        PERMISSION_CODE_CAM -> {
            if (grantResults.size!! > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                openCamera()
            } else {
                Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    if (resultCode == Activity.RESULT_OK && resultCode == IMAGE_CAPTURE_CODE) {
        imageView.setImageURI(image_uri)
    }

}

我想使用 http 请求将图像上传到服务器,我在 java 中获得了很多代码,但在 kotlin 中却没有。我不知道要在 kotlin 中上传。

最佳答案

因为这个问题仍然悬而未决。我们可以使用 OKHTTP 库,它非常易于使用,而且我们必须编写非常少的代码。在这里我写了一篇关于这个主题的详细文章

Upload Image or File to Server in Android Kotlin

我不打算再次复制相同的代码,我已经编写了一个 UploadUtility 类。只需从上面的链接将其复制到您的项目中,剩下的就由它来完成。

https://stackoverflow.com/questions/57490228/

相关文章:

reactjs - 在 React BootStrap 中的行元素之间添加空格

python-3.x - 如何修复Python3.7.1中的 "No module named '编

reactjs - GraphQL 返回数据但在代码中未定义

python - 无法从 git 子模块导入

jpa - Spring Data JPA Projection嵌套列表投影接口(interface

amazon-web-services - 解码 AWS session token

angular - 如何修复 "Could not determine the dependenci

wordpress - 在自定义感谢页面上显示 Woocommerce 订单详细信息

javascript - 是否可以禁用整个主体(包括内部 iFrame)的填写付款表格?

visual-studio-app-center-distribute - 是否可以在 AppCen