我的www文件夹中有一个静态PDF文件,我想链接到UI downloadButton()。似乎服务器端downloadHandler需要填充content选项,并且用于 react 产生的输出。

我知道我可以使用UI端的HTML标签tags$a('Download file.', href = 'foo.pdf')链接到静态内容。

关于如何将两者结合在一起的任何建议都将有所帮助。

最佳答案

我猜您只是想显示一个按钮?您可以将class = 'btn'添加到 anchor 。
这是使用class = 'btn'和不使用shiny的示例。

library(shiny)
runApp(list(
  ui = bootstrapPage(
    numericInput('n', 'Number of obs', 100),
    plotOutput('plot'),
    tags$a(href = 'foo.pdf', class = "btn", icon("download"), 'Download file.'),
    tags$a('Download file2.', href = 'foo2.pdf'),
    downloadButton('downloadData', 'Download')
  ),
  server = function(input, output) {
    output$plot <- renderPlot({ hist(runif(input$n)) })
    output$downloadData <- downloadHandler(
      filename = function() {
        paste('data-', Sys.Date(), '.csv', sep='')
      },
      content = function(con) {
        write.csv(data, con)
      }
    )

  }
))

要添加像downloadHandler函数的图标icon引用了fontawesome库。例如
这是 Shiny 功能使用http://fontawesome.io/icon/download/的图标。 Shiny具有包装器函数ojit_code来包含这些图标。

关于R: Shiny 的静态内容下载按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23619476/

10-12 17:33
查看更多