如何在mysql中存储用户的个人资料图片

时间:2014-10-24 07:50:19

标签: php ios mysql

我正在开发iOS的聊天应用程序。

在此应用中,用户可以将图片设置为个人资料图片。

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

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

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

请简要回答。

谢谢,

2 个答案:

答案 0 :(得分:2)

这很简单:)物理图像将存储在服务器上,您只会在数据库中存储图像名称或图像的相对路径,或者您想要它。所以,如果你愿意,你必须在你的数据库中存储一个指向该图像的“指针”。

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

希望这有帮助! :d

答案 1 :(得分:0)

可能要晚了,但我只是找到了方法。

方法1:从用户那里获取图片,并使用ID(首选主键)在您的public_html创建图片文件夹中重命名。为该文件夹设置适当的权限。并将图片保存在该文件夹中,该图片的网址将存储在DB列中。像

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

方法2:使用其他方法重命名该图像,例如用户的电子邮件,用户名等

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

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

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

此处,除该哈希键外,所有列中的网址均相同。 您只能存储散列。

希望这会有所帮助

引用自:https://www.techupdates.live/how-to-save-profile-picture-in-php-in-5-simple-steps/