downloadHandler {shiny} | R Documentation

## File Downloads

### 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.

### Usage

    downloadHandler(filename, content, contentType = NA, outputArgs = list())

### 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"`. If `NULL` or `NA`, the content type will be guessed based on the filename extension, or `application/octet-stream` if the extension is unknown.
`outputArgs` | A list of arguments to be passed through to the implicit call to `downloadButton` when `downloadHandler` is used in an interactive R Markdown document.

### Examples

    ## Only run examples in interactive R sessions
    if (interactive()) {

    ui <- fluidPage(
      downloadLink("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)
    }

[Package shiny version 1.0.5 Index]