File Upload Control — fileInput
fileInput( inputId, label, multiple = FALSE, accept = NULL, width = NULL, buttonLabel = "Browse...", placeholder = "No file selected" )
Arguments
| inputId | The  | 
|---|---|
| label | Display label for the control, or  | 
| 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 "unique file type specifiers" which gives the browser a hint as to the type of file the server expects. Many browsers use this prevent the user from selecting an invalid file. A unique file type specifier can be: 
 | 
| width | The width of the input, e.g.  | 
| buttonLabel | The label used on the button. Can be text or an HTML tag object. | 
| placeholder | The text to show before a file has been uploaded. | 
Description
Create a file upload control that can be used to upload one or more files.
Details
Whenever a file upload completes, the corresponding input variable is set
to a dataframe. See the Server value section.
Server value
A data.frame that contains one row for each selected file, and 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 - datapathcolumn).
- 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(),
varSelectInput()
Examples
## Only run examples in interactive R sessions if (interactive()) { ui <- fluidPage( sidebarLayout( sidebarPanel( fileInput("file1", "Choose CSV File", accept = ".csv"), checkboxInput("header", "Header", TRUE) ), mainPanel( tableOutput("contents") ) ) ) server <- function(input, output) { output$contents <- renderTable({ file <- input$file1 ext <- tools::file_ext(file$datapath) req(file) validate(need(ext == "csv", "Please upload a csv file")) read.csv(file$datapath, header = input$header) }) } shinyApp(ui, server) }