Shiny 是否在web浏览器选项卡或文件浏览器窗口中打开服务器端目录?

Shiny 是否在web浏览器选项卡或文件浏览器窗口中打开服务器端目录?,shiny,Shiny,我正在运行一个闪亮的应用程序,它生成一些文件并将它们保存在文件服务器位置的目录中。生成文件后,我希望与其他应用程序交互处理这些文件 它应该是这样工作的: /正在上运行的srv/shinny server/myapp/app.Rhttp://localhost/myapp 拜访http://localhost/myapp 然后单击按钮“打开/主页/” 打开了一个文件浏览器窗口,用于/home/或internet浏览器(即Firefox、Chrome)上的新选项卡 我试过: 带有onclick=“w

我正在运行一个闪亮的应用程序,它生成一些文件并将它们保存在文件服务器位置的目录中。生成文件后,我希望与其他应用程序交互处理这些文件

它应该是这样工作的:

  • /正在上运行的srv/shinny server/myapp/app.Rhttp://localhost/myapp
  • 拜访http://localhost/myapp 然后单击按钮“打开/主页/”
  • 打开了一个文件浏览器窗口,用于/home/或internet浏览器(即Firefox、Chrome)上的新选项卡
  • 我试过:

  • 带有
    onclick=“window.open”()的
    action按钮file:///home/“,”空白“
    =>由于web浏览器的安全功能而失败)

  • system('firefoxfile://...“)
    失败,出现
    错误:未指定显示环境变量

  • 第三种可能的选择是将文件保存到
    /srv/shinny server/myapp/www
    ,并建立指向该文件的链接。但这意味着我必须在服务器上复制文件。打开一个文件浏览器窗口,有什么更优雅的方法来实现这一点


    请注意,服务器是由远程桌面访问的,应用程序是在该远程桌面会话中本地访问的。因此,如果可能的话,我想避免使用“下载按钮”。

    您可以使用
    addResourcePath
    从原始位置为您的文件提供服务

    library(shiny)
    
    ui <- fluidPage(htmlOutput("link"))
    
    server <- function(input, output, session) {
      addResourcePath("res", "/my/folder/containing/my/file")
      output$link = renderUI(HTML('<A HREF="res/file_name">Download</A>'))
    }
    
    shinyApp(ui = ui, server = server)
    
    库(闪亮)
    
    ui您可以使用
    addResourcePath
    从原始位置为您的文件提供服务这部分起作用:我可以添加resourcepath并创建指向每个文件的超链接。它不适用于目录级别。例如:不起作用。