在Shiny中获取上传文件的名称作为变量

时间:2017-01-06 12:10:07

标签: r file-upload shiny

我正在创建一个闪亮的应用程序,其中维恩图的一个部分将以上传的文件命名(由用户完成)。例如,如果有人上传文件ClientXYZ.csv,那么维恩图的一部分将被命名为“ClientXYZ”

是否可以在Shiny中执行此操作?

1 个答案:

答案 0 :(得分:3)

如果没有可重复的示例,则不清楚,但您可以使用输入和名称获取文件的名称。

library(shiny)

ui <- fluidPage(

   titlePanel("Grabbing my file name"),

   sidebarLayout(
      sidebarPanel(
        fileInput('file1', 'Select your file',
                  accept = c(
                    'text/csv',
                    'text/comma-separated-values',
                    '.csv'
                  )
        )
      ),
      mainPanel(
         textOutput("myFileName")
      )
   )
)

server <- function(input, output) {

  file_name <- reactive({
    inFile <- input$file1

    if (is.null(inFile))
      return(NULL)

    return (stringi::stri_extract_first(str = inFile$name, regex = ".*(?=\\.)"))
  })

  output$myFileName <- renderText({ file_name() })

}

# Run the application 
shinyApp(ui = ui, server = server)