Domanda

Ho un'applicazione di rotaie che genera file di Office aperti e ho un servizio in un'altra posizione che converte questi file di Office aperti in file di Microsoft Office. Vorrei eseguire un'azione del controller che invierà il file open office al convertitore, quindi servirà all'utente il file Microsoft Office restituito. come potrei farlo?

-C

È stato utile?

Soluzione

Scopri

send_file @file.path, :x_sendfile => true

at apidock .

Ciò ti consente di servire i file dal filesystem con l'autenticazione delle rotaie, ma servire il file effettivo passerà attraverso il tuo modulo apache / lighttd e non vincolerà un processo di rotaie.

Per quanto riguarda il recupero del documento MS Office, probabilmente vorrai che il servizio richiami un'azione diversa, che dice all'app della tua rotaia di scaricare il nuovo documento.

class MyController < ApplicationController
  def get_new_document
    unless params[:file_path].nil? or params[:server_uri].nil?
      @new_document = Net::Http.get(params[:server_uri], params[:file_path])
      @new_document.save # save to filesystem
    end
  end
end

Altri suggerimenti

x_sendfile non è disponibile se usi nginx, se lo sei puoi usare X-Accel-Redirect. Puoi trovare maggiori informazioni qui:

http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top