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
filethat 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-streamif the extension is unknown.- outputArgs
A list of arguments to be passed through to the implicit call to
downloadButton()whendownloadHandleris 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 = FALSEif 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)
}