如何在R Shiny的conditionalPanel中用JS判断文件是否上传
解决R Shiny中conditionalPanel判断文件是否上传的JS表达式问题
要在conditionalPanel的condition参数中判断文件是否已上传,需基于Shiny暴露在JS环境中的input对象编写表达式,核心是检查对应fileInput的输入值是否存在且包含文件数据:
- 正确的JS表达式:
"input.selectFile && input.selectFile.length > 0"
原因说明
Shiny的fileInput在JS层面的表现规则:
- 未选择文件时,
input.selectFile为null - 选择文件后,它会变成一个包含文件信息的数组(即使
multiple=FALSE,依然是数组结构)
你之前尝试的==0、==true等表达式无效,是因为没有匹配到fileInput在JS中的实际数据结构。
修改后的完整代码
library(fullPage) library(shiny) library(shinyWidgets) ui <- pagePiling( center = TRUE, sections.color = c("#CFE2F3"), menu = c( "Tab1" = "exploit" ), pageSection( fileInput("selectFile", "Choose a file", multiple = FALSE ), conditionalPanel(condition="input.selectFile && input.selectFile.length > 0", downloadButton('download_file', "Download the uploaded file")) ) ) server <- function(input, output){ } shinyApp(ui, server)
内容的提问来源于stack exchange,提问作者mazu
相关产品推荐
相关产品推荐

