我正在開發一個php站點,我們必須從users.i上傳圖像,必須重命名該文件以防止圖像名稱發生衝突。生成唯一名稱?
uniqid(rand(), true);
and adding a large random number after it.
這個工作是否完美。有什麼建議麼..??
它有關的圖像生成唯一的名稱.....
我正在開發一個php站點,我們必須從users.i上傳圖像,必須重命名該文件以防止圖像名稱發生衝突。生成唯一名稱?
uniqid(rand(), true);
and adding a large random number after it.
這個工作是否完美。有什麼建議麼..??
它有關的圖像生成唯一的名稱.....
功能tempnam()
創建一個具有唯一名稱的文件。
你可以使用Base36對SQL表中的AutoIncrement值(希望你做使用SQL表)。
$filename = base_convert($last_insert_id, 10, 36);
你必須依賴於「如何」大可以將你的圖片庫兩種方式: 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
?>
拿一個文件的MD5並使用它。 IIRC,碰撞的機率是64M中的1。如果這還不夠,請在前面加上以秒或毫秒錶示的時間戳。這樣,即使生成了重複的md5,這些文件也必須在衝突的相同秒/毫秒內進入。