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


Unique name after multiple images upload

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

Desert_201409281000.jpg
Desert_201409282000.jpg

是否可以仅为此显示一些独特的名称,如PHOTO1?

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

如何上传图像?

  • 如果通过外部URL,那么你可以只检查重复的URL

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

  • 我相信你需要时间戳,如果不需要,那么很明显,在带时间戳的图像列表中第一次出现的图像可以作为所有重复图像的名称!

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

这个页面表明PHP有一个名为md5的内置函数,用于检查任何文件的md5值。如果您将md5文件名存储在SQL中,那么在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