Android -如何从Imageview图像创建文件对象



我正在制作一个android应用程序,它可以让用户从手机中选择一张图像并将其加载到ImageView中。进一步的过程是将图像作为POST请求发送到PHP脚本

如果我从文件位置将图像加载到File对象,则一切正常,但这需要用户在手机上打开一个设置,允许应用程序访问和管理本地文件。

那么,有没有一种方法从imagview读取图像到File对象?这是我当前的工作代码

val fil = File(getRealPathFromURI(imageUri!!).toString())

if (Build.VERSION.SDK_INT >= 30){
if (!Environment.isExternalStorageManager()){
var getpermission =  Intent()
getpermission.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
startActivity(getpermission);
}
}


var reqB = RequestBody.create("image/*".toMediaTypeOrNull(),fil)

var part = MultipartBody.Part.createFormData("file",fil.name,reqB)

如果我试图将它加载到File对象,如果用户不允许它通过手机上的设置,Kotlin会抛出访问错误。我相信这是android的安全问题。

我真正想做的是

  1. 让用户选择手机上已有的图片
  2. 在imageview中显示
  3. 创建一个函数,将选中的图像放入MultipartBody中。部分,而无需用户授予应用程序访问特殊权限