2017-02-13 116 views
4

我遇到了Shiny中的downloadHandler()问题:
如果我想通过此功能下载任何文件,下载窗口中的文件名与输出变量(例如:“downloadData”),但不是它在downloadHandler()中的“filename =”中声明的(它应该是“data-2017-02-13.csv”)。downloadButton/downloadHandler无法识别文件名参数

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

## 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) 
} 

这里下载窗口,我得到: enter image description here

+3

它只是在预览或浏览器内?尝试'runApp(shinyApp(ui,server),launch.browser = TRUE)' – BigDataScientist

+0

这是依赖于浏览器。 – Carl

+0

我有同样的问题。我在应用程序中包含了一个下载按钮,并想知道为什么它会使用输出变量的名称。在浏览器中它可以工作。 另一件在RStudio中不起作用的东西是通过downloadHandler中的contentType参数强制输出文件的内容类型。您需要在Chrome中打开该应用程序才能正常工作。也许这两个差异都有类似的原因。 – Calbers

回答

2

我有同样的问题,当我用RStudio预览窗口,并能够通过总是用命令打开浏览器来解决这个问题

runApp(launch.browser = TRUE)