【发布时间】:2015-09-16 18:19:31
【问题描述】:
我正在编写一个带有嵌入码头的服务器端应用程序,它接收来自第三方客户端的一些请求。客户端上传一些小文件到服务器。但令我惊讶的是,客户端没有将文件数据上传为 application/octet-stream,而是将 json 作为 application/json 上传,其中包括有关文件的所有元数据,并在字段中将所有数据作为字符串上传。举个简单的例子
{ "_id": "水果", “名称”:“水果”, "_shasum": "4954f1f8b4a8cbf9ea6b675face476f030cf7fbb", "tarball": "http://localhost:8585/fruit/-/fruit-2.0.0.tgz", “_附件”:{ “水果2.0.0.tgz”:{ “content_type”:“应用程序/八位字节流”, “数据”:“mF6/622swKoG0kbVvS8qCyF5r48CuyiCO60Mcl/LnOyufzAEZ5xxxhn/IT4DO4Fr4QAMAAAA=”, “长度”:545 } } }
现在的问题是如何将其转换为 .tgz 文件?我无法更改客户端,所以我必须使用它。
【问题讨论】:
-
您无法将其转换为文件。要么您尝试接收错误的文件,要么客户端损坏并发送错误数据。
-
我不这么认为。当我上传时,我只收到一个请求,这就是我正在获取的数据。所以文件中没有错误。随着客户端上传数据,我认为客户端也没有损坏。并且同一个客户端使用相同的技术与它的默认服务器一起工作 - 这是用 js 编写的。
-
哦,对了,我错过了 base64 编码的数据。我以为你在使用 HTTP。好吧,如果这是全部数据,您可以解码并保存它。你知道如何使用 Base64,对吧?
-
是的,我愿意。我也忘记了 Base64 编码。这样就解决了问题..谢谢。
标签: java json inputstream