r - 从浏览器获取下载目录
问题描述
我有这个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
)
}
)
在这里,文件被下载到默认下载目录中。现在如果我想下载到另一个目录怎么办?换句话说:有没有办法确定默认下载目录并对其进行操作?
解决方案
downloadHandler() 应该能够处理这个问题。文件名参数是“文件名的字符串,包括扩展名,用户的网络浏览器在下载文件时应该默认使用它。”因此我们可以通过在文件名中定义路径来操作默认目录。
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) 中似乎不起作用,它们仅在部署到浏览器中后才起作用。
推荐阅读
- javascript - 需要帮助以了解如何访问 INDEXEDDB 请求结果数组的返回结果
- c# - C# 泛型类型函数,使用 System.String 使泛型方法失败
- opencl - 我如何知道 OpenCL 内核是否正常工作?
- python - 遍历文件行直到找到用户输入
- php - Wordpress:Functions.php:为什么我声明的图像大小没有显示在模态中?
- android - Android:适配器的过滤结果总是返回 null
- python - 声明时执行函数
- android - Dagger hilt & oauth 拦截器 - 如何更新 Singleton
- azure-devops - 如何为 *.json 文件指定两个路径以在 Azure DevOps 管道中运行 ARM-TTK 测试
- java - 在 localhost 上运行的 Springboot 应用程序无法与在 docker 上运行的 redis 通信