我有一个R闪亮的应用程序,需要上传多个文件(都在同一文件夹中)。我还知道要查找的文件的名称。
除了通过fileInput(..., multiple = TRUE)
,还有什么方法可以上传这些文件吗?理想情况下,我会让用户上传整个目录。
发布于 2018-11-30 23:05:24
您可以使用库shinyFiles
让用户在其本地磁盘上的某个位置拍摄一个文件夹。然后,在服务器中,您可以使用用户输入从该文件夹加载所需的所有文件。
示例
library(shiny)
library(shinyFiles)
### UI
ui <- fluidPage(
shinyDirButton('directory_select', 'Select a directory', title='Select a directory'),
textOutput('directory_name')
)
### Server
server <- function(input, output, session) {
volumes <- getVolumes()
shinyDirChoose(input, 'directory_select', roots=volumes, session=session)
dirname <- reactive({parseDirPath(volumes, input$directory_select)})
## Observe input dir. changes
observe({
if(!is.null(dirname)){
print(dirname())
output$directory_name <- renderText(dirname())
## Load files here
# csv <- read.csv(paste0(dirname(), '/filename1.csv'))
# rdata <- load(paste0(dirname(), '/filename2.Rdata'))
# etc.
}
})
}
shinyApp(ui = ui, server = server)
https://stackoverflow.com/questions/53551352
复制相似问题