web-dev-qa-db-fra.com

R Shiny: Télécharger le fichier existant

Disons que j'ai un fichier Zip existant (out.Zip) dans mon application brillante (c'est-à-dire située sur un serveur). Je souhaite que l'utilisateur puisse télécharger ce fichier. Cette question est très similaire à celle-ci . Cependant, cette question zippe les fichiers dans le downloadHandler alors que le fichier Zip existe déjà dans mon cas.

library(shiny)

app <- list(
  ui = fluidPage(
    titlePanel(""),
    sidebarLayout(
      sidebarPanel(
        downloadButton("downloadData", label = "Download")
      ),
      mainPanel(h6("Sample download", align = "center"))
    )
  ),

  server = function(input, output) {  
    output$downloadData <- downloadHandler(
      filename <- function() {
        paste("output", "Zip", sep=".")
      },

      content <- function(file) {
        # not sure what to put here???
      },
      contentType = "application/Zip"
    )
  }
)

shiny::runApp(app)
31
cdeterman

Après avoir fouillé avec différentes fonctions de gestion de fichiers, j'ai découvert que file.copy peut être utilisé pour télécharger le fichier.

Je change downloadHandler en:

output$downloadData <- downloadHandler(
  filename <- function() {
    paste("output", "Zip", sep=".")
  },

  content <- function(file) {
    file.copy("out.Zip", file)
  },
  contentType = "application/Zip"
)
40
cdeterman