如何将内容uri转换为文件?
How to convert content uri to file?
我想使用改造将多张图像发送到我的数据库。我正在使用此代码 select 多张图片。
private val galleryLauncher =
registerForActivityResult(ActivityResultContracts.GetMultipleContents()) { list ->
//TODO convert all content uris to File
}
我已经尝试了一堆图像选择器库,但其中 none 可以在我的设备 (Android R) 中使用。
如何将它们转换为文件?请帮忙。
有没有其他方法可以通过Retrofit2向服务器发送图片?
私有 val galleryLauncher =
registerForActivityResult(ActivityResultContracts.GetMultipleContents()) { 列表 ->
//TODO 将所有内容 uris 转换为文件
}
我使用了这个依赖
implementation "commons-io:commons-io:2.7"
还有这个方法
private fun createFileFromUri(name: String, uri: Uri): File? {
return try {
val stream = context.contentResolver.openInputStream(uri)
val file =
File.createTempFile(
"${name}_${System.currentTimeMillis()}",
".png",
context.cacheDir
)
FileUtils.copyInputStreamToFile(stream, file) // Use this one import org.apache.commons.io.FileUtils
file
} catch (e: Exception) {
e.printStackTrace()
null
}
}
我想使用改造将多张图像发送到我的数据库。我正在使用此代码 select 多张图片。
private val galleryLauncher =
registerForActivityResult(ActivityResultContracts.GetMultipleContents()) { list ->
//TODO convert all content uris to File
}
我已经尝试了一堆图像选择器库,但其中 none 可以在我的设备 (Android R) 中使用。 如何将它们转换为文件?请帮忙。
有没有其他方法可以通过Retrofit2向服务器发送图片?
私有 val galleryLauncher = registerForActivityResult(ActivityResultContracts.GetMultipleContents()) { 列表 -> //TODO 将所有内容 uris 转换为文件 }
我使用了这个依赖
implementation "commons-io:commons-io:2.7"
还有这个方法
private fun createFileFromUri(name: String, uri: Uri): File? {
return try {
val stream = context.contentResolver.openInputStream(uri)
val file =
File.createTempFile(
"${name}_${System.currentTimeMillis()}",
".png",
context.cacheDir
)
FileUtils.copyInputStreamToFile(stream, file) // Use this one import org.apache.commons.io.FileUtils
file
} catch (e: Exception) {
e.printStackTrace()
null
}
}