上传多个图片后的唯一名称

时间:2014-09-29 18:17:12

标签: php jquery image

我有PHP代码,可以同时上传多个文件。目前我正在使用name_timestamp模式作为文件名 - 以保持唯一性。现在的要求是假设我上传沙漠图像两次(内容保持不变),那么将有2个带有该时间戳的条目。 例如:

Desert_201409281000.jpg
Desert_201409282000.jpg

是否可以为此显示一些像PHOTO1这样的唯一名称?

我尝试使用JQuery,但我想要一个PHP解决方案。

1 个答案:

答案 0 :(得分:0)

你是如何上传图片的?

  • 如果是通过外部网址,那么您只需检查重复的网址

  • 即可
  • 如果是从计算机上,那么你可以使用一些php库来检查重复的图像,然后应用时间戳和一种方法将文件重命名为一个Photo1.jpg文件......

  • 我相信你需要时间戳,如果没有,那么显然,时间戳图像列表中第一次出现的图像可以作为所有重复项的名称保存!

此外,在搜索重复图像文件的PHP解决方案后,我找到了这个页面:[::: link :::]

此页面表明PHP有一个名为md5的内置函数,用于检查任何文件的md5值。如果要在SQL中存储md5文件名,那么在PHP中,您可以在SQL表中搜索上载文件的md5值的任何匹配项,并根据您的要求重命名文件。

以下是验证MYSQL表中md5值的代码:

$sign = md5(file_get_contents($filename)); //This will create an unique md5 signature for every picture

//You could now store that hash in your database and check for duplicates at every upload
$results = mysql_query("SELECT file FROM images WHERE signature=" . $sign);
if ($row = mysql_fetch_array($results)) {
   //Duplicate found, $row['file'] contains name
}

根据建议,您还可以使用:$sign = md5_file($filename);sha1