fileInput {shiny} | R Documentation

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

`name`

  The filename provided by the web browser. This is not the path to read to get at the actual data that was uploaded (see `datapath` column).

`size`

  The size of the uploaded data, in bytes.

`type`

  The MIME type reported by the browser (for example, `text/plain`), or empty string if the browser didn't know.

`datapath`

  The path to a temp file that contains the data that was uploaded. This file may be deleted if the user performs another upload operation.

### See Also

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

### Examples

    ## 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)
    }

[Package shiny version 0.14.2 Index]