Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Shiny的服务器功能中包含指向本地文件的HTML下载链接?_Html_R_Shiny - Fatal编程技术网

如何在Shiny的服务器功能中包含指向本地文件的HTML下载链接?

如何在Shiny的服务器功能中包含指向本地文件的HTML下载链接?,html,r,shiny,Html,R,Shiny,我有一个应用程序,基本上需要有链接来下载几个不同的PDF文件,这些文件存储在www文件夹中。我已经能够弄清楚如何在UI.R文件中生成这个链接,但是我需要在服务器上完成这项工作,我正在努力处理HTML 在UI文件中,我只使用了一个简单的 tags$a(href='Incarceration rate graph.pdf', target='blank', 'Incarceration', download = 'Incarceration rate graph.pdf') 这将下载所需的文件。但

我有一个应用程序,基本上需要有链接来下载几个不同的PDF文件,这些文件存储在
www
文件夹中。我已经能够弄清楚如何在UI.R文件中生成这个链接,但是我需要在服务器上完成这项工作,我正在努力处理HTML

在UI文件中,我只使用了一个简单的

tags$a(href='Incarceration rate graph.pdf', target='blank', 'Incarceration', download = 'Incarceration rate graph.pdf')
这将下载所需的文件。但是,我尝试用以下最小的应用程序在服务器功能中复制它

library(shiny)

setwd("//ace/home/anambiar/PDF download test")

ui <- fluidPage(
htmlOutput("test1")
)


server <- function(input, output, session) {
output$test1 <- renderUI({
  HTML("<a href='Incarceration rate graph.pdf' target = 'blank' download='Incarceration rate graph.pdf'> Incarceration rate </a>")
})
}

shinyApp(ui = ui, server = server)
库(闪亮)
setwd(“//ace/home/anambiar/PDF下载测试”)
ui
库(闪亮)
ui
库(闪亮)

ui如果你想生成50个链接,我建议你看看。是另一个很好的链接,它解释了如何使用
purrr
从向量开始生成多个UI元素(
downloadLink
s)(请参见“Purrifying Module Deployment”(Purrifying Module Deployment)一节)。

如果您想生成50个链接,我建议您看看。是另一个很好的链接,它解释了如何使用
purrr
从一个向量开始生成多个UI元素(
downloadLink
s)(请参见“purrifying Module Deployment”一节)。

Ah crap这是唯一的方法吗?我的最终应用程序将有大约50个链接,因此我希望不必为每个链接使用downloadHandler。您可以使用单个downloadHandler根据以前的选择提供不同的文件。看看为什么不压缩你的文件?你可以用一个下载处理程序来完成这个任务。@DSGym我不能压缩它们,因为它们总共大约有2个Gig大小。我想让用户选择下载哪个文件。更新了代码。这适合你的需要吗?如果是的话,我很高兴你能接受这个答案:-)啊,该死,这是唯一的办法吗?我的最终应用程序将有大约50个链接,因此我希望不必为每个链接使用downloadHandler。您可以使用单个downloadHandler根据以前的选择提供不同的文件。看看为什么不压缩你的文件?你可以用一个下载处理程序来完成这个任务。@DSGym我不能压缩它们,因为它们总共大约有2个Gig大小。我想让用户选择下载哪个文件。更新了代码。这适合你的需要吗?如果是,我很高兴你能接受这个答案:-)
library(shiny)


ui <- fluidPage(
  tags$h1("Test"),
  downloadLink('downloadData', 'Download'),
  selectizeInput("files", "Select Files", choices = c("File A", "File B", "File C"), selected = "File A", multiple = FALSE)
)


server <- function(input, output, session) {

  output$downloadData <- downloadHandler(
    filename = function() {
      paste('data-', input$files, "-", Sys.Date(), '.pdf', sep='')
    },
    content = function(file) {
      file.copy(paste0(input$files, ".pdf"), file)
    }
  )



}

shinyApp(ui = ui, server = server)