【问题标题】:downloadButton/ downloadHandler does not recognize filename argumentdownloadButton/downloadHandler 无法识别文件名参数
【发布时间】:2017-07-01 15:54:13
【问题描述】:

我在 Shiny 中遇到了 downloadHandler() 的问题:
如果我想通过此函数下载任何文件,下载窗口中的文件名与输出变量的名称相同(在示例中:“downloadData”),但与“filename=”中声明的不同downloadHandler() (应该是“data-2017-02-13.csv”)。

请注意,以下示例来自 downloadHandler() - 帮助页面,所以我猜我在其中编写 R 脚本的 R 或 RStudio 存在一般问题。
此外,当我在网络浏览器中打开闪亮的应用程序时,问题就消失了。
这部分解决了它,但我仍然想知道为什么闪亮在 RStudio 和网络浏览器中的行为不同。

## Only run examples in interactive R sessions
if (interactive()) {

ui <- fluidPage(
  downloadLink("downloadData", "Download")
)

server <- function(input, output) {
  # Our dataset
  data <- mtcars

  output$downloadData <- downloadHandler(
    filename = function() {
      paste("data-", Sys.Date(), ".csv", sep="")
    },
    content = function(file) {
      write.csv(data, file)
    }
  )
}

shinyApp(ui, server)
}

这里是我得到的下载窗口:

【问题讨论】:

  • 是只在预览中还是在浏览器中?试试runApp(shinyApp(ui, server), launch.browser = TRUE)
  • 这取决于浏览器。
  • 我也有同样的问题。我在应用程序中包含了一个下载按钮,并想知道为什么它会使用输出变量的名称。在浏览器中它可以工作。另一件在 RStudio 中不起作用的事情是通过 downloadHandler 中的 contentType 参数强制输出文件的内容类型。您需要在 chrome 中打开该应用程序才能正常工作。也许这两种差异都有相似的原因。

标签: r file download shiny rstudio


【解决方案1】:

我在使用 RStudio 预览窗口时遇到了同样的问题,并且能够通过始终使用命令打开浏览器来解决此问题

runApp(launch.browser = TRUE)

【讨论】:

  • 感谢您的回答,我快疯了(这就像两行非常简单的代码 - 无法正常工作!)
猜你喜欢
  • 2012-07-10
  • 2017-07-06
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-14
相关资源
最近更新 更多