2014-02-27 31 views
2

我有一個Ruby應用程序,在這個應用程序中,自由職業者可以爲僱主完成工作。工作完成後,自由職業者可以上傳文件供僱主審覈。我認爲自由職業者應該可以上傳zip文件,但我不希望自由職業者能夠上傳無效或損壞的zip文件。有什麼辦法可以阻止這個或檢查一個文件是否有效。林相當肯定,如果有一種方法或功能來做到這一點,它會在rubyzip庫,但我已經瀏覽了他們的文檔,並找不到我在找什麼。在rails中,我可以檢查上傳的zip文件是否損壞或無效?

回答

4

這裏是試圖打開Zip文件,返回true如果它的工作和false發生錯誤後一個天真的解決方案:

require 'zip' 

def valid_zip?(file) 
    zip = Zip::File.open(file) 
    true 
rescue StandardError 
    false 
ensure 
    zip.close if zip 
end 

相信ZIP格式包括其內容的CRC32校驗。如果你真的需要它超快,你可以閱讀那些文件並檢查你計算的校驗和。

+0

甜!非常便利。 –