如何从www目录下载数据目录

时间:2015-12-15 09:19:32

标签: r shiny

我想提供一个用户链接,以下载存储在我的闪亮应用程序的WWW目录中的测试数据文件列表。我试过下面显示的东西。

library(shiny)

    # server.R
    server <- function(input, output) {

      output$downloadData <- downloadHandler(
        filename = 'data',
        content = function(fname) {
           testdata
        })

    }

    # ui.R
    ui <- shinyUI(fluidPage(
      titlePanel('Downloading Data'),
      sidebarLayout(
        sidebarPanel(
          downloadLink ('downloadData', 'Download')
        ),
        mainPanel()
      )
    )
    )

    shinyApp(ui = ui, server = server)

然而,它不起作用。怎么办。

1 个答案:

答案 0 :(得分:1)

主要问题是如何阅读数据?你如何得到testdata

例如,如果data.csv

中有www
shinyServer(function(input, output) {
  testdata=read.csv2('www\\data.csv',header = F)

  output$downloadData <- downloadHandler(
    filename =function() { 'data.csv'},

    content = function(file){
      fname <- paste(file,"csv",sep=".")
      write.csv2(testdata,fname)
      file.rename(fname,file)
    }

   )

})

对我来说只能在浏览器中工作

你也可以尝试创建所有文件的zip(不能在我的R上测试zip)

shinyServer(function(input, output) {
  wd=getwd()
  testdata=c("data.csv","data1.csv")
  testdata_full_path=path.expand(paste0(wd,"\\www\\",testdata))

  output$downloadData <- downloadHandler(
    filename = 'data.zip',
    content = function(fname) {
      tmpdir <- tempdir()
     lapply(testdata_full_path,function(i) file.copy(i,tmpdir))
      setwd(tmpdir)
      zip('data.zip',files= testdata)
      setwd(wd)
     unlink(tmpdir)

    },
    contentType = "application/zip"
  )



})