我该如何处理此文件上传问题?

时间:2011-08-04 23:10:18

标签: c# asp.net-mvc-3 file-upload

我让用户上传照片。

用户可以使用闪光机制一次上传多张照片。 用户可能会尝试两次或更多次上传相同的文件。

理想情况下,用户不应该有两次相同的照片。这可能会泛滥系统。

如何阻止用户上传重复文件?

处理此问题的正确方法是什么?   我会阻止用户上传重复文件吗?   目前,如果用户使用ajax WS调用,我正在检查每个文件。   但是用户不会经常上传重复的文件,但检查的费用总是如此。

OR

我可以避免在保存期间进行昂贵的检查和检查吗?

OR

使用不同名称保存用户文件?

试着看看其他人会怎么做。

由于

2 个答案:

答案 0 :(得分:0)

如果您使用guid保存名称,可以确保您永远不会复制现有文件

为了降低文件检查的成本,使用Enlib保存名称,大小等等来缓存文件数据,这样您就可以快速检查数据是否与调用system.IO相匹配。你的文件

答案 1 :(得分:0)

让用户将文件上传到临时区域。上载文件时,使用MD5或类似的算法计算文件的哈希值。在数据存储中查找哈希值。为了减少冲突的可能性,查找可以包括上传文件的用户的哈希和用户名。

如果哈希已经存在,那么该文件已经上传,所以基本上可以从临时区域中删除该文件。

如果未找到哈希,则可以将该文件添加到系统中。

如果可以在上传过程开始之前计算和检查哈希,那就更好了,用户也不会浪费时间上传。

请注意零长度文件将产生相同的哈希值,因此应进行检查以确保文件有效。