gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 08:11:26 25 4
gpt4 key购买 nike

我用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 类。只需从上面的链接将其复制到您的项目中,剩下的就由它来完成。

关于android - 如何在 kotlin 中使用 http 请求将图像上传到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57490228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com