Frage

Ich habe eine Ruby-App, mit der Freiberufler Aufträge für einen Arbeitgeber erledigen können.Wenn der Auftrag abgeschlossen ist, kann der Freiberufler Dateien hochladen, damit der Arbeitgeber sie überprüfen kann.Ich denke, der Freiberufler sollte in der Lage sein, ZIP-Dateien hochzuladen, aber ich möchte nicht, dass der Freiberufler ungültige oder beschädigte ZIP-Dateien hochladen kann.Gibt es eine Möglichkeit, dies zu stoppen oder zu überprüfen, ob eine Datei gültig ist?Ich bin mir ziemlich sicher, ob es eine Methode oder Funktion dafür gibt, diese in der Rubyzip-Bibliothek zu finden, aber ich habe die Dokumentation durchgesehen und kann nicht finden, wonach ich suche.

War es hilfreich?

Lösung

Hier ist eine naive Lösung, die versucht, ein Zip-Archiv zu öffnen und zurückzugeben true ob es funktioniert hat und false wenn ein Fehler aufgetreten ist:

require 'zip'

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

Ich glaube, dass das ZIP-Format CRC32-Prüfsummen seines Inhalts enthält.Wenn es wirklich superschnell sein soll, können Sie diese aus der Datei auslesen und mit der von Ihnen berechneten Prüfsumme vergleichen.

Andere Tipps

Eine andere einfache Möglichkeit wäre, einfach mit dieser Bedingung zu überprüfen, wenn die Datei hochgeladen wird.

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top