我有一个PDF文件在我的闪亮的应用程序的www目录。我想该文件可供下载。我怎么能做到这一点。
下载示例运行良好,但不知道使用它从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条答案
按热度按时间mtb9vblg1#
看看
downloadHandler
函数documentation,它有两个没有默认值的参数:文件名和内容。filename基本上是要下载的文件的名称。它不必在函数中。
filename = "your-pdf-name.pdf"
的工作原理与在无参数函数中定义它一样。另一方面,content会创建一个临时文件,其中包含要下载的内容。在大多数情况下,您将创建一个文件,该文件将由您在应用中创建的内容完成。
这不是你的情况,我的解决方案提供了我们在巴西称为“gambiarra”的东西:它会把你想要下载的文件复制到shiny需要的临时文件中,然后放到
downloadHandler
上。(我试过只把它定义为文件的路径,但是不起作用)neskvpey2#
如果文件在
www
文件夹中,则只需在UI中提供指向该文件的链接如果文件名在开始时未知,则使用uiOutput/renderUI并在生成文件名时将rv$filename设置为该文件名。
91zkwejq3#
我的应用程序帮助用户创建某些感兴趣的文件。然后我使用我的包shinyDebuggingPanel(在github上),打开一个带有control-D的交互式R框,然后粘贴:
点击!瞧!它在这里:要下载的文件位于本地“下载”文件夹中。
PS:我经常使用shinyDebuggingPanel。忘记创建www文件夹了?没问题!Control-D打开shinyDebuggingPanel,然后粘贴到
system('mkdir www')
中