fileInput
fileInput(inputId, label, multiple = FALSE, accept = NULL, width = NULL,
buttonLabel = "Browse...", placeholder = "No file selected")
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. |
| 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. 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
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.
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)
}
See also
Other input elements: actionButton,
checkboxGroupInput,
checkboxInput, dateInput,
dateRangeInput, numericInput,
passwordInput, radioButtons,
selectInput, sliderInput,
submitButton, textAreaInput,
textInput