2017-02-13 115 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)