我已经编写了使用Kotlin将图像上传到服务器的代码,也就是说,用户通过相机拍摄一张照片,然后在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。
4条答案
按热度按时间kadbb4591#
由于这个问题仍然是开放的。我们可以使用OKHTTP库,这是非常容易使用,我们必须写非常少的代码。在这里我写了一个详细的文章的主题
Upload Image or File to Server in Android Kotlin
我不打算再复制相同的代码,我已经写了一个UploadUtility类。只要从上面的链接复制到你的项目中,它就会做剩下的事情。
rsaldnfx2#
Api接口
Kotlin码
jtoj6r0c3#
这是图像上传使用Kotlin改造代码100%工作
oknrviil4#
您可以使用以下功能通过相机捕捉图像:
然后使用以下代码通过改装上传
而API接口是:
此外,您还可以将这些代码转换为Kotlin等效代码。