我有一个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
)
}
)
此处文件被下载到默认下载目录。如果要下载到另一个目录,该怎么办?换句话说:有没有办法确定默认的下载目录并进行操作?
答案 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)中似乎不起作用,它们仅在部署到浏览器中后才起作用。