为了简化问题,假设我正在开发一个像Instagram的移动应用程序。用户可以从服务器下载图像,并上传自己的图像。目前,服务器将所有图像(实际上仅为小缩略图)存储在MySQL数据库中作为BLOBs。似乎最常见的传输图像的方式是使用Base64编码,这让我有两个选择:
我肯定不是第一个遇到这种情况的人,所以有人有关于使其工作的最佳方法的建议吗?
- 服务器将所有图像都存储为BLOBs。要上传图像,客户端将其编码为Base64字符串,然后将其发送到服务器。服务器将图像解码回二进制格式,并将其存储在数据库中作为BLOB。当客户端请求图像时,服务器将重新将图像编码为Base64字符串并将其发送给客户端,客户端再将其解码回二进制以进行显示。
- 服务器将所有图像都存储为Base64字符串。要上传图像,客户端将其编码为Base64字符串并将其发送到服务器。服务器不进行编码或解码,而是直接将字符串存储在数据库中。当客户端请求图像时,将返回Base64字符串给客户端,客户端再将其解码以进行显示。
我肯定不是第一个遇到这种情况的人,所以有人有关于使其工作的最佳方法的建议吗?