匹配上传的 PDF 文档的副本?

Match duplication of the uploaded PDF document?

我正在寻找防止同一个 pdf 文档与我的应用程序之一重复的方法。

我知道这与文档名称一起是一项非常简单的任务,但是,我不想通过名称匹配 PDF 副本。

挑战来了,我想根据内容检查上传文件是否重复,而不是根据最终用户上传的文件名。

我过去从未阻止过这种情况,但想知道,如果有人有办法解决我的问题。

您的解决方案或技巧将非常有用。

在此先感谢并等待相同的解决方案。

我认为最好的方法是从上传的文件生成校验和,存储在数据库(或其他地方),然后检查数据库中是否已经存在新上传文件的校验和。

在 Ruby 中,您可以使用 Digest 模块来做到这一点:

require "digest"
data = File.read("some_file_path")
checksum = Digest::MD5.hexdigest(data)

您不必检查文件名,只需使用此校验和即可。

一种简单的方法是通过 MD5 校验和查看。不是逐行读取或解析文件,而是为它们生成 MD5 摘要并匹配。 MD5值相同的是同一个文件

如何为 Ruby 中的文件生成 MD5?

require 'digest'
Digest::MD5.file("path/tp/pdf").hexdigest
# md5 string