有光泽:从服务器下载多个本地文件

时间:2016-09-06 01:16:28

标签: r shiny

假设我在闪亮的服务器上的文件夹(D:\ shiny)中生成了一些(多个)结果文件(csv,xls,txt等),我该怎么办? 下载(复制)到客户端计算机? 我的意思是在会话中下载文件而不是数据。 我从互联网上搜索过,大多数解决方案是读取文件然后写入客户端,是否可以一个一个地复制到本地客户端,并保留文件名? 或者提供下载链接(要下载的文件的位置)以供下载? shineFiles可以做这样的事吗?

2 个答案:

答案 0 :(得分:2)

您可以将结果数据文件存储在闪亮服务器上的http可访问文件夹中,并在闪亮的应用程序中提供该文件的简单下载链接。

答案 1 :(得分:1)

我通常将所有文件放在一个zip文件夹中,当用户按下下载按钮时,该文件夹会被创建:

output$DownloadZip <- downloadHandler(
  filename = function(){
    paste("Results","zip",sep=".")
  },
  content = function(con){
    tmpdir <- tempdir()
    setwd(tempdir())
    filesToSave <- c() #List to hold paths to your files in shiny

    #Put all file paths inside filesToSave...

    zip(zipfile=con, files = filesToSave)
  },
  contentType = "application/zip"
)

您需要为Windows 7及更低版本安装RTools(从命令行压缩)。