0

我想使用改造将多个图像发送到我的数据库。我正在使用此代码来选择多个图像。

  private val galleryLauncher =
        registerForActivityResult(ActivityResultContracts.GetMultipleContents()) { list ->
            //TODO  convert all content uris to File
        }

我尝试了一堆图像选择器库,但它们都不适用于我的设备(Android R)。如何将它们转换为文件?请帮忙。

还有其他方法可以通过 Retrofit2 将图像发送到服务器吗?

4

2 回答 2

0

我使用了这个依赖

 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
        }
    }
于 2022-01-25T18:38:20.707 回答
-1

private val galleryLauncher = registerForActivityResult(ActivityResultContracts.GetMultipleContents()) { list -> //TODO 将所有内容 uri 转换为文件 }

于 2021-12-04T14:23:42.393 回答