2016-01-11 82 views
0

由「真」我的意思是喜歡它的具體ID,我讀了一段時間在互聯網上的某個地方,你可以得到一個文件特定的ID,只存在該文件,這樣你就可以將它與具有相同名稱或其他相同值的文件區分開來。如何獲得真實的文件ID

示例的花朵

兩幅圖片上傳,第一個被稱爲Flower1.png但第二個也被稱爲Flower1.png,他們在同一時間都上傳和大小相同ETC(穿鑿我知道)但圖像由兩個不同的圖像組成。

即時通訊認爲它將沿着$_FILES['upload']['UID']或我只是無法找到它的上下文。

如果有人知道這是id的名字真的很感激它!

+0

沒有什麼如UID在'$ _FILES' ..如果同名文件上傳然後將最新年長更換,如果不施加任何其他條件。更好的重命名文件(前綴與時間戳),而上傳 – diEcho

+0

我知道,沒有這樣的事情作爲UID,我知道我可以很容易地加上時間戳前綴,但這不是我要求。 –

+0

您是否偶然參考了PHP上傳文件時自動生成的**隨機文件名**?如果是這樣的話,它就在'$ _FILES'中。您無需在任何文件系統中擁有相同路徑的對象。 –

回答

0

您正在查找的文件是inode。在php中,您可以使用此功能fileinodedocumentation here)。

fileinode($filename) 
+0

請注意,inode是Unix文件系統的低級功能。如果您的PHP代碼依賴於此,您將無法在Windows上開發。 –

0

你可以計算文件的哈希(也許MD5),並與另一個文件的哈希值進行比較的哈希值。

的例子(見http://php.net/manual/en/function.md5-file.php):

$hash_of_file1 = md5_file($_FILES['file1']['tmp_name']); 
$hash_of_file2 = md5_file($_FILES['file2']['tmp_name']); 

if ($hash_of_file1 == $hash_of_file2) { 
    // contents are the same 
} else { 
    // contents are not the same 
} 
相關問題