2016-11-04 73 views
3

我在我的閃亮應用程序的www目錄中有一個PDF。我希望該文件可供下載。我怎樣才能做到這一點。如何在Shiny應用程序中下載PDF文件

下載示例運行良好,但不知道如何將它用於從www目錄下載PDF。

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

回答

3

您可以在downloadHandler功能documentation一看,它有兩個參數沒有默認值:文件名和內容。

文件名是basecaly將被下載的文件的名稱。它不在功能內。 filename = "your-pdf-name.pdf"的作用與在無參數函數內定義它一樣有效。

內容,另一方面,創建一個臨時文件與將要下載的內容。在大多數情況下,您將創建一個文件,該文件將通過您在應用中創建的某些內容實現。

這是不是你的情況,我的解決方案在Brasil中提供了一個我們稱之爲「gambiarra」的東西:它將要下載的文件複製到閃存需要的臨時文件中,以便downloadHandler工作。 (我試過把它定義爲文件的路徑,但它不起作用)

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

server <- function(input, output) { 

    output$downloadData <- downloadHandler(
    filename = "your-pdf-name.pdf", 
    content = function(file) { 
     file.copy("www/teste.pdf", file) 
    } 
) 
} 

shinyApp(ui, server) 
相關問題