2009-11-15 111 views
0

我正在開發一個php站點,我們必須從users.i上傳圖像,必須重命名該文件以防止圖像名稱發生衝突。生成唯一名稱?

uniqid(rand(), true); 
and adding a large random number after it. 

這個工作是否完美。有什麼建議麼..??

它有關的圖像生成唯一的名稱.....

回答

8

功能tempnam()創建一個具有唯一名稱的文件。

0

你可以使用Base36對SQL表中的AutoIncrement值(希望你使用SQL表)。

$filename = base_convert($last_insert_id, 10, 36); 
0

你必須依賴於「如何」大可以將你的圖片庫兩種方式: 1.非大文件量我這樣做

<?php 

$file = sanitize_file($file); // remove all no [az-09_] characters for safe url linking; 
$file_md5 = $md5($file); 
$file_extention = $md5($file); 

// since I assume the file should belongs to someone you can do this 
$file_name = $user_id . $file_md5 . $file_extension; 

// then save the file 

?> 
  • 選項.... CacheMogul。在這裏你需要使用你的想象力。但對於大量的文件,這確實是一個很好的分片,所以你不需要擔心文件夾的最大數量或大小
  • 1

    拿一個文件的MD5並使用它。 IIRC,碰撞的機率是64M中的1。如果這還不夠,請在前面加上以秒或毫秒錶示的時間戳。這樣,即使生成了重複的md5,這些文件也必須在衝突的相同秒/毫秒內進入。