2011-09-09 80 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