如何通过Shinydasboard中的downloadButton()从Dropbox下载.csv文件?

问题描述 投票:0回答:1

[当我继续在第一个闪亮的仪表板上工作时,我一直在努力完成一项任务。我的保管箱中有一个文件夹(包含数据集),我希望能够从中下载文件,如下所示:

  1. 用户通过selectInput()选择文件
  2. 然后他/她单击downloadButton()将文件保存到本地计算机。

到目前为止,我只需要保存一个部分复制appnot 数据文件的文件(.html)。我尝试了不同的方法(从我在网络上学到的方法),但没有成功。它遵循了我代码的相关部分。谢谢您的帮助!

全局

从保管箱的文件夹中获取文件名

filenames <- function(){
 drop_dir('Partners Files') %>%
 pull()
}

UI件

# To download  a file 

selectInput("dataset", "Choose a Dataset", choices = filenames()),
tableOutput("preview"),
downloadButton("download", "Download .csv"),

服务器片

下载文件

data_down <- reactive({
    req(input$dataset())
  })

单击下载文件按钮时,保存数据

observeEvent(input$download, {
    drop_download(data_down())
  })        
r shiny dropbox shinydashboard
1个回答
0
投票

经过几次尝试和错误尝试后,我可以完成此操作。我对这些东西还很陌生,但这很有趣。如果有人遇到这样的问题,我会发布我的解决方案。

下载文件:

#Downloadable csv of selected dataset
  output$downloadData <- downloadHandler(
    filename = function() {
      paste(input$dataset, sep = "")
    },
    content = function(file) {
      drop_download(paste0("Partners Files/", input$dataset), overwrite = T)
    }
  )

我想我做的错误之一是试图对输入$数据集使用反应式变量。仍然存在一个问题:我的应用允许用户将文件上传到保管箱;然后我所做的(在此部分)是使该文件可供其他用户下载到其​​本地计算机。但是,我注意到只有在重新加载应用程序之后,才可以通过select $ Input()(用于下载)选择可用的文件。有没有办法来解决这个问题?我认为这与反应性或ObservEvent事件有关。我希望这对人们有所帮助,并且在其他方​​面可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.