我正在寻找防止使用我的应用程序复制相同的pdf文档。
我知道这是一个非常简单的任务以及文档的名称,但我不想将PDF副本与其名称相匹配。
这里面临挑战,我想根据内容检查上传文档的重复,而不是最终用户上传的文档名称。
我过去从未阻止这种情况,但想知道,如果有人有办法解决我的问题。
您的解决方案或技巧将非常有用。
先谢谢,并等待一个奇怪的解决方案。
答案 0 :(得分:4)
我认为最好的方法是从上传的文件生成校验和,存储在数据库(或其他地方),然后检查数据库中是否已存在新上传文件的校验和。
在Ruby中,您可以使用Digest
模块来执行此操作:
require "digest"
data = File.read("some_file_path")
checksum = Digest::MD5.hexdigest(data)
您不必检查文件名,只需使用此校验和。
答案 1 :(得分:1)
一种简单的方法是通过MD5校验和查看。不是逐行读取或解析文件,而是为它们生成MD5摘要并进行匹配。具有相同MD5值的那些是相同的文件。
如何在Ruby中为文件生成MD5?
require 'digest'
Digest::MD5.file("path/tp/pdf").hexdigest
# md5 string