首页 > 解决方案 > 尝试将 base64 字符串解码为 PDF,但文件始终损坏。我做错了什么?

问题描述

我有一个使用 base64 编码的 pdf。我正在尝试获取此编码字符串,对其进行解码,然后将其以 pdf 格式保存到手机中。该文件按预期保存,但由于已损坏而无法打开。我尝试了不同的pdf,但仍然得到相同的结果。这是我的代码

val cachePath = File(context.cacheDir, "pdfs")
cachePath.mkdirs()

val stream = FileOutputStream(cachePath.path + "/$PATH_NAME")
stream.write(Base64.decode(inputString, Base64.DEFAULT))
stream.flush()
stream.close()

val file = File(cachePath, PATH_NAME)
FileProvider.getUriForFile(context,"file_provider_authority",file)?.let {  uri ->
    val intent = Intent(Intent.ACTION_CREATE_DOCUMENT)
    with(intent) {
        flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
        flags = Intent.FLAG_ACTIVITY_NO_HISTORY
        data = (uri)
        type = context.contentResolver.getType(uri)
    }
    startActivity(Intent.createChooser(intent, "PDF"))
}

标签: javaandroidkotlin

解决方案


推荐阅读