防止SQL Server 2014 FileTable中的重复文件

时间:2015-06-15 19:14:42

标签: sql-server asp.net-mvc filestream filetable

我打算编写一个ASP.NET MVC应用程序,它将大型文件(可能大到500 MB)上传到SQL Server 2014 FileTable。有没有办法在上传之前检查FileTable中是否已经存在该文件?

如果该文件已存在于数据库中,那么我将要引用已上传的文件,而不是上传新文件。

如果在检查FileTable中是否已存在该文件之前必须首先将文件上载到FileTable,建议的比较方法是什么? (我应该为每个文件生成某种单独的CRC,然后与之进行比较吗?)

谢谢!

1 个答案:

答案 0 :(得分:0)

在上传之前,您必须在客户端计算文件的哈希值。我没有代码片段,只有概念:

  • 使用HTML File APIFile Reader阅读文件
  • a Javascript implementation of SHA256计算文件的哈希值
  • 在您的服务器上存储文件内容,以及每个文件的SHA256哈希
  • 客户端执行AJAX请求以查看具有此哈希的文件是否已存在
  • 如果它尚不存在:上传它!