R Shiny - 文件上传始终为NULL

时间:2018-06-11 18:18:18

标签: r file-upload shiny reactive-programming

我正在整理一个闪亮的应用程序并尝试以下几行:

require("shiny")

ui <- fluidPage(
  fluidRow(fileInput(inputId = "dataFile", label = NULL)),
  fluidRow(wellPanel(tableOutput(outputId = "rawText")))
)

server <- function(input, output) {
  observe({
    upFile <- input$dataFile

    if(!is.null(upFile)) {
      raw.dat <<- reactive({
        read.csv(file = upFile$datapath, header = TRUE, stringsAsFactors = FALSE)
      })
    } else raw.dat <<- reactive({})
  })

  output$rawFile <- renderTable(as.data.frame(raw.dat()))
}

shinyApp(ui = ui, server = server)

然而即使在我上传文件后,raw.dat()总是,总是返回NULL。

我缺少什么?

2 个答案:

答案 0 :(得分:0)

让你的raw.dat对象被动反应。因为它依赖于input$dataFile,它会为你做观察。

raw.dat <- reactive({
  upFile <- input$dataFile
  if (is.null(inFile)) return(NULL)
  read.csv(upFile$datapath, header = TRUE, stringsAsFactors = FALSE)
})

答案 1 :(得分:0)

您上传的文件可能大于允许的默认大小,请使用以下命令更改可接受的值:

options(shiny.maxRequestSize = MB*1024^2) #Change MB to suit your needs