【发布时间】:2017-05-04 20:28:57
【问题描述】:
我正在使用离子框架。目前正在设计一个带有文本和图像的帖子页面。用户可以在那里发布数据和图像,并且都是安全的。
所以,我使用 base 64 编码并将图像保存在数据库中。
encodeURIComponent($scope.image)
每次用户请求时,我从表中选择行并将它们与文本一起显示并解码。
decodeURIComponent($scope.image)
用 HTML "data:image/jpeg;base64,_______" 转换。
工作正常,但花费了我预期的时间。因此,图像的尺寸增大了 33%,而且看起来很鼓。
然后我决定继续使用cordova的文件上传插件。但我意识到,以这种方式维护文件是非常冒险和复杂的。我也尝试将二进制数据保存到数据库中。但是失败了。
没有 base64 数据的文本选择大大减少了时间。如果可以在另一个 http 调用中单独选择图像,则在选择其他列并显示之后。它是处理安全图像的正确机制吗?
【问题讨论】:
-
图像总是根据情况而定。对于像电子商务这样的大型网站,您需要一个 CDN,对于网站图像、图标等,最好将其硬编码到您网站的 html 中。你的用例是什么?无需透露您的秘密想法,只需告诉我们查看/发送图片的一般方式即可。
-
将图像作为 jpg 文件存储在服务器上并且当客户端要求传递每个图像的 url 时会更有效。
-
但存储在文件夹中的图像需要格外小心。假设用户想要删除专辑帖子。然后我必须从数据库中删除与帖子相关的文本数据,然后单独删除该相册中的图像。如果中途删除失败,他的图片还在服务器中。所以承诺删除图片是不安全的。
-
选择图片也很麻烦。如果我的应用程序用户增长,如何在每次插入、更新、选择、删除操作中处理来自文件系统的这么多图像。
-
@Magus 个人头像、头像。
标签: php mysql angularjs ionic-framework base64