0

请参阅下面的图片,您将获得与我的问题相关的上下文。

在此处输入图像描述

该网站是一个为才华横溢的摄影师提供的网站,他们可以上传图片并让其他人看到他们所拍摄的内容。

由于设计问题,我对我的工作感到震惊。

用户(无需注册)可以打开我的网站并上传姓名、手机、描述、图片等详细信息(同一用户可以上传不同的图片),其中手机号码是必填字段。因此,在上传图片时,我将其附加到 Mobile Number + FileName.jpg 中,并且图像将存储在我的服务器内的文件夹中,其余详细信息(例如 mobile num、desc、name --etc)将存储在 MYSQL 数据库中. (这是一部分,已完成)

第二部分是在页面启动时,我从该文件夹中获取所有图像(最新的 20 个已修复)并将其显示在页面上。

因此,当任何用户单击特定图像时,我需要显示诸如 Desc、名称、--- 等详细信息,因此在该图像的 onclick 事件中,我会从单击的图像中获取手机号码并在数据库中进行搜索. (现在这里有个问题)就是同一个用户(也就是同一个手机号)可以上传不同的图片到网站,所以用手机号搜索会得到很多结果。

图片名称格式为 83746787695iokI.jpg 。

我准备好改变任何格式,所以请告诉如何解决这个问题

4

2 回答 2

2

给定一个文件名83746787695iokI.jpg,您应该能够解析上传者的电话号码和原始文件名,然后使用这些值查询您的照片表。一个正则表达式可能是:

/^([0-9]{11})(.+)\.jpg$/

话虽如此,您应该考虑为每张照片分配一个唯一标识符,并使用它来命名您保存的文件。MySQL 中的 id 列可能如下所示:

id INT NOT NULL AUTO_INCREMENT

插入后,获取新行的 id(LAST_INSERT_ID()在 MySQL 中)并将文件保存为#{id}.jpg.

请注意,自动递增的 id 是一个可预测的整数,您的文件名将是1.jpg,2.jpg等。可以使用一个简单的脚本从您的服务器下载所有图像。为避免这种情况,请改用随机生成的唯一字符串命名文件,例如 UUID。将该字符串存储在表格的新列中,并使用它来识别您的照片。

于 2012-04-23T05:40:51.037 回答
0

这是您可以使用不同的主键。您可以使用自动编号字段,也可以在将图像存储在数据库中时使用时间戳:)

对于设计,我建议你去http://www.dynamicdrive.com/

问候红色

于 2012-04-23T03:54:41.980 回答