
Last chance! 50% off unlimited learning
Sale ends in
Create a file upload control that can be used to upload one or more files.
fileInput(inputId, label, multiple = FALSE, accept = NULL,
width = NULL, buttonLabel = "Browse...",
placeholder = "No file selected")
The input
slot that will be used to access the value.
Display label for the control, or NULL
for no label.
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.
A character vector of MIME types; gives the browser a hint of what kind of files the server is expecting.
The width of the input, e.g. '400px'
, or '100%'
;
see validateCssUnit
.
The label used on the button. Can be text or an HTML tag object.
The text to show before a file has been uploaded.
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.
Other input elements: actionButton
,
checkboxGroupInput
,
checkboxInput
, dateInput
,
dateRangeInput
, numericInput
,
passwordInput
, radioButtons
,
selectInput
, sliderInput
,
submitButton
, textAreaInput
,
textInput
, varSelectInput
# NOT RUN {
## 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 DataLab