我用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 返回数据但在代码中未定义
jpa - Spring Data JPA Projection嵌套列表投影接口(interface
amazon-web-services - 解码 AWS session token
angular - 如何修复 "Could not determine the dependenci
wordpress - 在自定义感谢页面上显示 Woocommerce 订单详细信息