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