【问题标题】:Avoid duplicate file uploads - Rails 4避免重复文件上传 - Rails 4
【发布时间】:2014-03-05 06:00:15
【问题描述】:

在 Rails 4.0 项目中,我使用了多文件上传插件。现在它正在通过ajax请求工作。 现在,我想避免重复文件上传,它应该显示正确的验证消息。文件上传页面也需要刷新。如何验证重复文件并刷新页面?

参考:http://hayageek.com/docs/jquery-upload-file.php#multi

Paperclip gem 版本是

paperclip (3.5.2, 2.3.11, 2.3.8)

在视图中,

<%= simple_form_for(@file, :as=>"file", :url=>create_files_path, :html=>{:multipart => true, :autocomplete=>"off"}) do |f| %>
  <%= f.input :document, :as=>:file, :label =>false, :required => true %>
<% end %>


<script type="text/javascript">
  $("#file_document").uploadFile({
   url:"<%= create_files_path %>",
   multiple:true,
   showDone: false,
   showProgress: true,
   showError:true
 });
</script>

【问题讨论】:

  • 内容或名称是否重复?
  • 需要按文件内容检查
  • 最接近的是文件名、类型和大小,你不能轻易通过内容检查,尤其是二进制文件。
  • 如果文件名不同但里面的内容相同,如何识别?这里的文件是文本文件而不是二进制文件。
  • 您可以计算每个文件的 MD5 (md5sum) 并进行比较。文件名与计算MD5无关。所以即使文件名改变了也能得到相同的文件

标签: jquery ruby-on-rails ruby paperclip


【解决方案1】:

根据@Bjoernsen 对 MD5 摘要的评论,我发现这篇博文也在比较 S3 上的文件。我相信这也是 git 使用 SHA-1 哈希的方式。

再次感谢@Bjoersen 的指出。我学到了一些东西。

http://bytesofpi.com/post/24636043214/comparing-two-files-via-md5-hash-on-amazon-s3-using

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    相关资源
    最近更新 更多