shiny (version 0.14.2)

fileInput: File Upload Control

Description

Create a file upload control that can be used to upload one or more files.

Usage

fileInput(inputId, label, multiple = FALSE, accept = NULL, width = NULL)

Arguments

inputId
The input slot that will be used to access the value.
label
Display label for the control, or NULL for no label.
multiple
Whether the user should be allowed to select and upload multiple files at once. Does not work on older browsers, including Internet Explorer 9 and earlier.
accept
A character vector of MIME types; gives the browser a hint of what kind of files the server is expecting.
width
The width of the input, e.g. '400px', or '100%'; see validateCssUnit.

Details

Whenever a file upload completes, the corresponding input variable is set to a dataframe. This dataframe contains one row for each selected file, and the following columns:

See Also

Other input.elements: actionButton, checkboxGroupInput, checkboxInput, dateInput, dateRangeInput, numericInput, passwordInput, radioButtons, selectInput, sliderInput, submitButton, textAreaInput, textInput

Examples

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

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      fileInput("file1", "Choose CSV File",
        accept = c(
          "text/csv",
          "text/comma-separated-values,text/plain",
          ".csv")
        ),
      tags$hr(),
      checkboxInput("header", "Header", TRUE)
    ),
    mainPanel(
      tableOutput("contents")
    )
  )
)

server <- function(input, output) {
  output$contents <- renderTable({
    # input$file1 will be NULL initially. After the user selects
    # and uploads a file, it will be a data frame with 'name',
    # 'size', 'type', and 'datapath' columns. The 'datapath'
    # column will contain the local filenames where the data can
    # be found.
    inFile <- input$file1

    if (is.null(inFile))
      return(NULL)

    read.csv(inFile$datapath, header = input$header)
  })
}

shinyApp(ui, server)
}

Run the code above in your browser using DataCamp Workspace