File Downloads — downloadHandler
R/shinywrappers.R
Description
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.
Arguments
- filename
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.)
- content
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.)- contentType
A string of the download's content type, for example
"text/csv"
or"image/png"
. IfNULL
, the content type will be guessed based on the filename extension, orapplication/octet-stream
if the extension is unknown.- outputArgs
A list of arguments to be passed through to the implicit call to
downloadButton()
whendownloadHandler
is used in an interactive R Markdown document.
See also
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 setsuspendWhenHidden = FALSE
if the download is initiated by programmatically clicking on the download button using JavaScript.
Examples
## 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)
}