我有一个生成开放式office文件的rails应用程序,我在另一个位置有一个服务,可以将这些打开的office文件转换为microsoft office文件。我想要一个控制器操作,将打开的office文件发送到转换器,然后将返回的microsoft office文件提供给用户。我怎么能这样做?
-C
答案 0 :(得分:3)
结帐
send_file @file.path, :x_sendfile => true
这允许您使用rails身份验证来提供来自文件系统的文件,但是提供实际文件将通过您的apache / lighttd模块,并且不会占用rails进程。
至于获取MS office文档,您可能希望该服务调用另一个操作,告诉您的rails应用程序下载新文档。
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
答案 1 :(得分:0)
x_sendfile不可用,如果您正在使用X-Accel-Redirect。您可以在此处找到更多信息:
http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/