如何在Shiny应用程序中下载PDF文件

Awa*_*One 6 r download shiny

我的闪亮应用程序的www目录中有一个PDF.我希望该文件可供下载.我怎样才能做到这一点.

下载示例运行良好,但不知道将其用于从www目录下载PDF.

## Only run examples in interactive R sessions
if (interactive()) {

ui <- fluidPage(
  downloadLink("downloadData", "Download")
)

server <- function(input, output) {
  # Our dataset
  data <- mtcars

  output$downloadData <- downloadHandler(
    filename = function() {
      paste("data-", Sys.Date(), ".csv", sep="")
    },
    content = function(file) {
      write.csv(data, file)
    }
  )
}

shinyApp(ui, server)
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*los 10

看一下downloadHandler函数文档,它有两个没有默认值的参数:filename和content.

filename是basecaly将要下载的文件的名称.它不属于一个功能.filename = "your-pdf-name.pdf"与无参数函数中的定义一样多.

内容,在另一方面,创建与将要下载的内容进行临时文件.在大多数情况下,您将创建一个文件,该文件将通过您在应用程序中创建的内容来实现.

这不是你的情况,我的解决方案提供了我们在巴西称为"gambiarra"的东西:它将你想要下载的文件复制到闪亮需要的文件中downloadHandler.(我试过把它定义为文件的路径,但它不起作用)

ui <- fluidPage(
  downloadLink("downloadData", "Download")
)

server <- function(input, output) {

  output$downloadData <- downloadHandler(
    filename = "your-pdf-name.pdf",
    content = function(file) {
      file.copy("www/teste.pdf", file)
    }
  )
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果托管在服务器上,此文件夹可能会受到写保护。如果您使用“downloadHandler”,最好使用临时文件 (2认同)