2011-09-09 79 views
0

我想用php創建一個上傳表單。問題在於它將用於上載包含訂單的固定行長文本文件。 (完整的訂單細節將爲每一行重複)。PHP文件上傳和防止重複

然後它應該將文件放置在某處並調用一個將讀取該文件並下達命令的程序。問題是我想阻止相同的訂單文件發送到訂單程序。

該文件不會有任何唯一標識符。我想知道哪個是檢查文件不一樣的最好方法。一種解決方案是爲每個文件計算MD5並存儲它們,但是我不確定是否具有一致性,以及這是否可行以及要比較多少個文件。

唯一的解決方案,我可以找出它存儲一些最大(20),例如文件和使用flock()這個文件,以避免concurncy問題。像程序A檢查文件是否通過md5存在,程序B檢查文件是否通過md5存在(他們可能從一個非更新多數民衆贊成爲什麼我認爲我應該使用獨家鎖.... 任何其他解決方案?

回答

0

存儲MD5哈希(或SHA1)和文件的大小在數據庫中。指數的哈希值。

要重複檢查,只是在數據庫中搜索相同的哈希和大小的文件。

+0

我認爲這是太多隻爲這個東西創建一個數據庫!另外我們的數據庫系統是一個老式的C-ISAM實現,由一個人編寫,不支持併發訪問。 – GorillaApe

+0

雖然你有一個數據庫e爲此;我猜想一個文件夾中包含以圖像哈希值命名的文件就足夠了(例如; if('file_exists($ hash)){duplicate();}') – arnaud576875

+0

我想到這個,但他們想要一個人類可讀的名字。 – GorillaApe