Allows content from the Shiny application to be made available to the user as
file downloads (for example, downloading the currently visible data as a CSV
file). Both filename and contents can be calculated dynamically at the time
the user initiates the download. Assign the return value to a slot on
output
in your server function, and in the UI use
downloadButton()
or downloadLink()
to make the
download available.
downloadHandler(filename, content, contentType = NULL, outputArgs = list())
A string of the filename, including extension, that the user's web browser should default to when downloading the file; or a function that returns such a string. (Reactive values and functions may be used from this function.)
A function that takes a single argument file
that is a
file path (string) of a nonexistent temp file, and writes the content to
that file path. (Reactive values and functions may be used from this
function.)
A string of the download's
content type, for
example "text/csv"
or "image/png"
. If NULL
, the content type
will be guessed based on the filename extension, or
application/octet-stream
if the extension is unknown.
A list of arguments to be passed through to the implicit
call to downloadButton()
when downloadHandler
is used
in an interactive R Markdown document.
The download handler, like other outputs, is suspended (disabled) by
default for download buttons and links that are hidden. Use
outputOptions()
to control this behavior, e.g. to set
suspendWhenHidden = FALSE
if the download is initiated by
programmatically clicking on the download button using JavaScript.
## Only run examples in interactive R sessions
if (interactive()) {
ui <- fluidPage(
downloadButton("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)
}