【发布时间】: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