【问题标题】:How to store user's profile picture in mysql如何在mysql中存储用户的个人资料图片
【发布时间】:2014-12-20 00:53:39
【问题描述】:

我正在为 iOS 开发一个聊天应用程序。

在这个应用程序中,用户可以将图像设置为他们的头像。

所以我的问题是,我怎样才能将图像存储在 mysql 中?

我看到很多人说,只需将图像的链接(在设备上)存储在 mysql 中,但是图像如何从数据库中在不同的 iOS 设备上可用?

我也尝试过使用 BLOB,但是当显示表格行时(json 编码),BLOB 字段的值是 NULL。

请简要回答。

谢谢,

【问题讨论】:

  • 您是将图像保存在设备上还是从网络服务器检索?
  • 如果他正在开发一个聊天应用程序......?他肯定有一个网络服务器,你不觉得吗? :D
  • 我想从网络服务器检索图像...
  • 在下面的答案旁边,您可以将图像作为 base64 存储在数据库中。然而,这会将其大小增加 33%。

标签: php ios mysql


【解决方案1】:

这很简单 :) 物理图像将存储在服务器上,您将仅将图像名称或图像的相对路径或您想要的任何方式存储在数据库中。因此,如果您愿意,您必须在数据库中存储一个指向该图像的“指针”。

所以:
- 服务器上文件夹中的图像
- 在 DB -> path/to/file 或 file_name.format 或者如果你知道你的路径,并且你知道你的格式只是 file_name

希望这会有所帮助! :D

【讨论】:

  • 谢谢,但我对这一切没有太多经验...如何通过 iOS 应用程序在我的服务器上上传图像?那不需要像filezilla之类的东西吗?
  • 你必须使用 C# 代码...不幸的是,我不懂 C#,所以我在这里帮不上忙...
  • C sharp...它是面向对象的 C++(更多信息在这里 -> msdn.microsoft.com/en-us/library/kx37x362.aspx)或任何其他 iOS 应用程序开发环境:D
  • @AresDraguna 你可能想做更多的研究。
  • @AshishGogna iOS 应用程序可以使用 Xamarin 在 C# 中编码。
【解决方案2】:

可能会迟到但我刚刚找到了方法。

方式 1:从用户获取图像并使用 id(首选主键)重命名,并在您的 public_html 中为图像创建文件夹。为该文件夹设置适当的权限。并将图像保存在该文件夹中,该图像的 url 将存储在 DB 列中。喜欢

https://www.example.com/images/user1.png 做这种风格。

方式 2:使用其他东西来重命名该图像,例如用户的电子邮件、用户名等

方式3:在上述2种情况下,可能会发生其他用户,黑客可能会尝试使用ID,电子邮件等下载图像。 这就是为什么,您可以做的另一种方法是您可以为配置文件生成一个哈希,并检查该哈希是否已存在于列中,如果退出则生成另一个。可能我不认为有可能生成类似的哈希值。但您可以检查以避免将来出现错误。现在使用生成的哈希重命名图像。

您也可以使用仅存储生成的哈希并在您的应用程序中声明一些变量并实现该链接列的大小来减少该链接列的大小

https://www.example.com/images/generated_hash.png

这里的 url 在除该哈希键之外的所有列中都是相同的。 您只能存储该哈希值。

希望对你有帮助

参考来自:https://www.techupdates.live/how-to-save-profile-picture-in-php-in-5-simple-steps/

【讨论】:

    猜你喜欢
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多