java - 尝试将 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"))
}
解决方案
推荐阅读
- android - Flutter Firebase - Release APK 与 Debug APK 不同
- mongodb - _id 找不到子文档
- javascript - 如何输入我的代码客户端日期和时间?
- apache-spark - 在 Pyspark Structured Streaming 中,如何在写入 Kafka 之前丢弃已经生成的输出?
- python - 为什么在没有 sudo 的情况下使用 sudo 安装 netfilterqueue 不起作用 python 找到了模块
- c - 创建一个指向存储在另一个地址的地址的指针
- swift - 当用户切换到暗模式时,无法更新 UINavigationBar tintColor
- html - 如何对响应式导航栏进行排序
- python - 如何为数据框中的每一列创建一个 csv 文件?
- javascript - 模态后面的Adminlte模板datetimepicker