gpt4 book ai didi

java - 从浏览器上传后解码存储在数据库中的二进制文件

转载 作者:行者123 更新时间:2023-12-01 11:19:20 24 4
gpt4 key购买 nike

在从将文件存储在数据库中的 CMS 迁移到将文件存储在 AWS S3 中的系统时,除了从 Java(旧系统)对格式进行逆向工程并实现这一切之外,我似乎找不到任何其他选项我自己从头开始使用 python,使用 java 代码或 rfc1867 作为引用。

我有包含长字符串编码文件的数据库转储。我不是 100% 清楚使用了哪种二进制文件上传编码。但每种文件类型的第一个字符之间存在一致性。

  • UEsDBBQA 是大量 DOCX 文件格式中的前 8 个字符,UEsDBBQABgAIAAAA 是超过 75% 的 DOCX 文件中的前 16 个字符。
  • JVBERi0xLj 是许多 PDF 文件的前 10 个字符。

每个允许文件上传的 Web 应用程序框架都必须对这些文件进行解码......所以这是一个已知的问题。但我找不到用 Python(我选择的语言)或某种命令行解码工具来解码这些字符串的方法...

文件无法识别它们。

hachoir 无法识别它们。

有没有我可以安装的简单工具,我不在乎它们是否是 C、Perl、Python、Ruby、JavaScript 或 Mabolge 语言,我只想要一个可以将编码字符串作为输入的工具(文件、stdin、我不在乎)并输出解码后的原始文件。

或者我是否过度考虑了解码这些文件的算法,它会比看起来更简单,有人可以告诉我如何使用纯 python 解码它们?

最佳答案

将二进制数据表示为文本的最常用编码算法是 Base64 。我刚刚用 Java 对 PDF 文件进行了快速测试,在对其进行 Base64 编码时得到了完全相同的标题字符序列。

byte[] bytes = Files.readAllBytes(Paths.get("/test/test.pdf"));
String base64 = DatatypeConverter.printBase64Binary(bytes);
System.out.println(base64.substring(0, 10)); // JVBERi0xLj

所以,您很可能正在寻找 Base64 解码器。

我不会Python,所以这里有一个Google search suggestion以及迄今为止出现在搜索结果中的第一个 Stack Overflow 链接:Python base64 data decode .

关于java - 从浏览器上传后解码存储在数据库中的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31446061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com