【发布时间】:2011-11-24 12:31:20
【问题描述】:
我有一个桌面应用程序,它可以创建大约 2-3k 的二进制数据并将其发布到 Web 服务器。我已经使用HttpSendRequest 完成了发布文章,它适用于文本,但显然无法使用二进制文件。从我的研究看来,我需要 base64 对我的 c++ 应用程序中的数据进行编码,然后在 PHP 中使用 base64_decode 来存储这些数据。
我已经下载了几个设计用于在base64 中编码的 c/c++ 文件,但是它们要么根本不起作用,要么编码与 PHP 编码不兼容。
我想我的问题是这样的:
- 我这样做是否正确?有没有更好的格式来传输这些数据?
- 是否有人知道可以帮助我以正确格式对这些数据进行编码的简单类或其他 c++ 代码?
--更新-过去一天我一直在玩这个,现在比以往任何时候都更加困惑。这是数据:
- 原始二进制数据:http://pastebin.com/cPWjGN3q
- 在 C++ 中进行 base64 编码后:http://pastebin.com/H4Jze96g
- 以 php 编码上传:http://pastebin.com/MRLZrsve
- 在 php 中解码:http://pastebin.com/TJs5WCNj
- 我用来发布数据的代码:http://pastebin.com/L856rKmw。
我不确定哪里出了问题,但如果能帮助解决这个问题,我们将不胜感激!
-- 更新 2-- POST 过程将编码数据中的 + 字符更改为空格。请参阅以下内容:
从 C++ 发布的数据:http://pastebin.com/NiSE7GUe
通过 FTP 复制到服务器:http://pastebin.com/S0qjfreM
后期处理会改变这个字符是否有合理的原因?我更愿意了解并解决实际问题,但也许执行字符串替换就足以最终解决这个问题?
【问题讨论】:
-
HttpSendRequest指的是msdn.microsoft.com/en-us/library/windows/desktop/… ?