Einstellung der Dateiname für die heruntergeladene Datei in einer rails-Anwendung
Habe ich eine controller-Aktion, mit der ein Benutzer zum herunterladen einer Datei mit der Erweiterung .ppt . Es ist nicht wirklich eine powerpoint-binary, nur einen xml-ähnlichen format, das powerpoint Lesen kann. die Datei ist heruntergeladen von der show-action des Controllers aufgerufen ElementsController, aber die show-action ist nicht wirklich definiert in der Steuerung, es ist jedoch eine template-Datei in app/views/elements/zeigen.ppt.builder . Ich habe den Mime::Type registrierte im config/- Initialisierungen/mime_types.rb:
Mime::Type.register "multipart/related", :ppt
und die Datei downloads richtig, und öffnet mit powerpoint auf einem windows-system, aber das problem ist der Dateiname. der name der Datei ist 3.ppt wo drei ist der id-parameter im url. Ich würde gerne wissen, ob es eine Möglichkeit zum festlegen der Dateinamen, um etwas mehr beschreibend als 3.ppt.
thx,
-C
InformationsquelleAutor Chris Drappier | 2009-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie send_data:
Ein weiterer Vorteil dieser ist, können Sie x-sendfile, so dass Sie mongrel/Dünn, nicht zu warten, während der client lädt die Daten.
Andere Möglichkeit wäre eine route wie:
/elements/3/files/foo.ppt
Dann in Ihrer show-Methode für die FilesController Sie können senden was auch immer die id-parameter wäre.
Was ist falsch mit der respond_to?
Ich aktualisiert meine Frage mit einer anderen Idee.
es scheint nur, wie es sollte kein Grund sein, um tatsächlich respond_to in Ihrem individuellen controller-Aktionen, weil die Schienen tut es automatisch für Sie, wenn Sie Folgen, Namenskonventionen und registrieren Sie Ihre mime-Typen. Ich will nur um die Dateinamen, sondern als Neudefinition der ganzen Aktion.
Ich denke, die Sache ist, dass Sie ersuchenden eine URI mit dem format. Ich würde erwarten, dass es im Gegenzug ein Dokument mit diesem Namen. Hast du meinen anderen Vorschlag?
InformationsquelleAutor jonnii
Ein mögliches Beispiel:
InformationsquelleAutor Grant Neufeld
Ok. Dies ist eine Antwort auf eine sehr alte Frage, aber wie von Rails 3.2 die am meisten einfache Weise, zu setzen, ist es wie:
Quelle API-Doc
InformationsquelleAutor Roberto Trevisan