从浏览器获取下载目录

时间:2018-09-18 09:17:50

标签: r browser shiny

我有一个shiny应用,我想通过一个按钮下载文件。因此,我可以通过调用downloadHandler来做到这一点,例如:

output$downloadData <- downloadHandler(
      filename = "plot1.png",

   content = function(file) {
      plotPNG(func = function(){
            plot(some.Data)
         },
         filename = file,
         width = 3000,
         height = 2000,
         res = 300
      )
   }
)

此处文件被下载到默认下载目录。如果要下载到另一个目录,该怎么办?换句话说:有没有办法确定默认的下载目录并进行操作?

1 个答案:

答案 0 :(得分:0)

downloadHandler()应该能够处理此问题。文件名参数是“文件名字符串, 包括扩展名 ,下载文件时用户的Web浏览器应默认为该字符串。”因此,我们可以操纵默认值目录,方法是在文件名中定义路径。

server<-function(input,output){

output$downloadData <- downloadHandler(

# Sets filename the browser should default too
filename = function() {
  paste(PATH_TO_DIR,"plot1",".png/xls/etc.",sep="") 
}, # Closes Filename Function

# Creates Download file
content = function(file) {
  plotPNG(func = function(){
        plot(some.Data)
     },
     file = filename(),
     width = 3000,
     height = 2000,
     res = 300
  )
}

ui<-
downloadButton("downloadData", 'Download File')
)

可以与下载按钮配合使用,当通过使用变量定义路径来按下按钮时,文件和路径的名称可以动态生成。我认为这可能会打开文件浏览器,并且我不知道这是否可以避免。

还请注意,文件名,路径和内容类型在本地会话(RStudio)中似乎不起作用,它们仅在部署到浏览器中后才起作用。