Frage

Ich möchte die Dateien in einer ZIP-Datei extrahieren ich meine Rails-Anwendung hochgeladen. Die Dateien in der ZIP-Datei werden in der Datenbank gespeichert werden.

Ich mag die ZIP-Datei in meiner Aktion öffnen, ohne zuerst die Datei in einen Ordner speichern zu müssen -. Ich den multipart / form-Datenstrom mit rubyzip öffnen möchte

Es sieht aus wie rubyzip der ZipFile.open nur einen Dateinamen nimmt -. Keine IO-Stream

Was muss ich innerhalb rubyzip ändern, mir zu erlauben, die Zip-Datei als Stream zu öffnen, wie folgt aus:

Zip::ZipFile.open(params["zip_file"]) do |zip_file|
 ...
end

Danke. Joerg

War es hilfreich?

Lösung

Mit

Zip::ZipFile.open(params["zip_file"].path) do |zip_file|
 ...
end

sollte funktionieren.

Andere Tipps

Ich werde dir einen Rat geben, die Sie nicht gebeten haben.

würde ich dringend empfehlen, dass Sie diesen Vorgang nicht ausführen aus Ihrer Aktion, weil es den Rails Prozess mit der HTTP-Anforderung so lange verbunden ist blockiert, da sie die Extraktion durchzuführen nimmt. Ihre UI für den Benutzer wird nicht mehr reagiert und wenn genügend Nutzer dies tun gleichzeitig (Sie begrenzen die Datei-Upload-Größe, nicht wahr?), Dann haben Sie effektiv bekam eine Denial of Service Angriff gegen Ihre Anwendung geht.

  • Starten Sie die Extraktion als asynchrone Hintergrundjob aus Ihrer Aktion.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top