我让用户上传照片。
用户可以使用闪光机制一次上传多张照片。 用户可能会尝试两次或更多次上传相同的文件。
理想情况下,用户不应该有两次相同的照片。这可能会泛滥系统。
如何阻止用户上传重复文件?
处理此问题的正确方法是什么? 我会阻止用户上传重复文件吗? 目前,如果用户使用ajax WS调用,我正在检查每个文件。 但是用户不会经常上传重复的文件,但检查的费用总是如此。
OR
我可以避免在保存期间进行昂贵的检查和检查吗?
OR
使用不同名称保存用户文件?
试着看看其他人会怎么做。
由于
答案 0 :(得分:0)
如果您使用guid保存名称,可以确保您永远不会复制现有文件
或
为了降低文件检查的成本,使用Enlib保存名称,大小等等来缓存文件数据,这样您就可以快速检查数据是否与调用system.IO相匹配。你的文件
答案 1 :(得分:0)
让用户将文件上传到临时区域。上载文件时,使用MD5或类似的算法计算文件的哈希值。在数据存储中查找哈希值。为了减少冲突的可能性,查找可以包括上传文件的用户的哈希和用户名。
如果哈希已经存在,那么该文件已经上传,所以基本上可以从临时区域中删除该文件。
如果未找到哈希,则可以将该文件添加到系统中。
如果可以在上传过程开始之前计算和检查哈希,那就更好了,用户也不会浪费时间上传。
请注意零长度文件将产生相同的哈希值,因此应进行检查以确保文件有效。