R:用于静态内容的闪亮下载按钮

imzjd6km  于 2023-06-19  发布在  其他
关注(0)|答案(3)|浏览(84)

我有一个静态PDF文件在我的www文件夹,我想链接到一个UI downloadButton()。看起来服务器端downloadHandler需要填充content选项,这意味着要以React方式生成输出。
我知道我可以使用HTML标签链接到静态内容,在UI端使用tags$a('Download file.', href = 'foo.pdf')
关于如何将两者结合在一起的任何建议都将是有益的。

nqwrtyyt

nqwrtyyt1#

我猜你只是想要一个按钮显示出来?您可以将class = 'btn'添加到锚。下面是一个例子,显示了class = 'btn'和没有。

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)
      }
    )

  }
))

要添加像shiny函数downloadHandler这样的图标,请参考fontawesome库。例如,这里是shiny函数使用的图标http://fontawesome.io/icon/download/。Shiny有一个 Package 器函数icon来包含这些图标。

yhxst69z

yhxst69z2#

也许这会有所帮助:

content = function(file) {
  file.copy('www/foo.pdf', file)
 }
hgtggwj0

hgtggwj03#

ui.Rserver.R的上下文中:

ui.R

downloadButton(
    "statFile",
    "Download static file"
  )

server.R

output$statFile <- downloadHandler(
    filename="example.txt",  # desired file name on client 
    content=function(con) {
      file.copy("file_name_on_server", con)
    }
  )

相关问题