我想在客户端上从我的Rails应用程序执行shell脚本。
在我的情况下,我想点击链接时在客户端PC上打开.odt
文件。
就目前而言,我所能做的就是使用e.g.
`libreoffice path_to_my_odt_file`
在我的服务器上运行shell脚本。
在这种情况下,我在服务器上使用LivreOffice打开我的文件。
有没有办法从Rails在我的客户端上执行此代码?
如果我尝试按原样运行我的应用程序,当我调用调用我的脚本的操作时,该文件将在我的服务器上打开。
提前谢谢你。
答案 0 :(得分:1)
正如评论中提到的,从http服务器在客户端上运行任意shell脚本将是一个巨大的安全漏洞。
只要您的Rails服务器提供了send_data
的下载链接(例如dynamically_generated_odt_file
),浏览器就会询问它是应该下载文件还是打开它。如果用户想要避免任何额外的互动,则可以tick:
"从现在开始对#34;
这样的文件自动执行此操作
您可能需要通过添加
来指定MIME类型Mime::Type.register "application/vnd.oasis.opendocument.text", :odt
到config/initializers/mime_types.rb
。